diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-07 22:35:55 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-12-07 22:35:55 +0300 |
commit | 68f5503bdc8fc309b62a4f555a048ee50d0495a5 (patch) | |
tree | ce0210db3a8844481aedbbc9aeafce27be3e659c | |
parent | bf7f1c7e2fdfe8b5050e8b3eebf111bf2ed1e8c9 (diff) | |
parent | 83929cce95251cc77e5659bf493bd424ae0e7a67 (diff) | |
download | linux-68f5503bdc8fc309b62a4f555a048ee50d0495a5.tar.xz |
Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fix from Ingo Molnar:
"An autogroup nice level adjustment bug fix"
* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched/autogroup: Fix 64-bit kernel nice level adjustment
-rw-r--r-- | kernel/sched/auto_group.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/sched/auto_group.c b/kernel/sched/auto_group.c index f1c8fd566246..da39489d2d80 100644 --- a/kernel/sched/auto_group.c +++ b/kernel/sched/auto_group.c @@ -212,6 +212,7 @@ int proc_sched_autogroup_set_nice(struct task_struct *p, int nice) { static unsigned long next = INITIAL_JIFFIES; struct autogroup *ag; + unsigned long shares; int err; if (nice < MIN_NICE || nice > MAX_NICE) @@ -230,9 +231,10 @@ int proc_sched_autogroup_set_nice(struct task_struct *p, int nice) next = HZ / 10 + jiffies; ag = autogroup_task_get(p); + shares = scale_load(sched_prio_to_weight[nice + 20]); down_write(&ag->lock); - err = sched_group_set_shares(ag->tg, sched_prio_to_weight[nice + 20]); + err = sched_group_set_shares(ag->tg, shares); if (!err) ag->nice = nice; up_write(&ag->lock); |