summaryrefslogtreecommitdiff
path: root/kernel/sched
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2012-12-20 13:58:00 (GMT)
committerScott Wood <scottwood@freescale.com>2015-02-13 22:20:06 (GMT)
commit01c73e1b6d195ef2f95ea344126c4943e6b7832e (patch)
treedcb9e289d191a1eaa3e663ce785732815fd23c7a /kernel/sched
parenta2418ee8fcba6c44fc3112f9db178e8d842712f4 (diff)
downloadlinux-fsl-qoriq-01c73e1b6d195ef2f95ea344126c4943e6b7832e.tar.xz
sched: Adjust sched_reset_on_fork when nothing else changes
If the policy and priority remain unchanged a possible modification of sched_reset_on_fork gets lost in the early exit path. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: stable@vger.kernel.org Cc: stable-rt@vger.kernel.org
Diffstat (limited to 'kernel/sched')
-rw-r--r--kernel/sched/core.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 35afc7a..048edc7 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -3391,10 +3391,13 @@ recheck:
}
/*
- * If not changing anything there's no need to proceed further:
+ * If not changing anything there's no need to proceed
+ * further, but store a possible modification of
+ * reset_on_fork.
*/
if (unlikely(policy == p->policy && (!rt_policy(policy) ||
param->sched_priority == p->rt_priority))) {
+ p->sched_reset_on_fork = reset_on_fork;
task_rq_unlock(rq, p, &flags);
return 0;
}