aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2014-09-06 11:08:40 +0100
committerMark Brown <broonie@kernel.org>2014-09-06 11:08:40 +0100
commit65df1d85ff2298f4bb5d179972b70369b71c42b0 (patch)
treeb120130afb9510791010a3e0956931f9a21e70c5 /kernel
parent1490161a608a403a313edb9eb733e4beba3907aa (diff)
parent32de5d0e850682c07b172b086cd1562cb350a8ea (diff)
Merge branch 'linux-linaro-lsk-v3.14' into linux-linaro-lsk-v3.14-rt
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/core.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index f8aa7a9fe564..e5741a8ac12a 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -3753,9 +3753,10 @@ static int _sched_setscheduler(struct task_struct *p, int policy,
};
/*
- * Fixup the legacy SCHED_RESET_ON_FORK hack
+ * Fixup the legacy SCHED_RESET_ON_FORK hack, except if
+ * the policy=-1 was passed by sched_setparam().
*/
- if (policy & SCHED_RESET_ON_FORK) {
+ if ((policy != -1) && (policy & SCHED_RESET_ON_FORK)) {
attr.sched_flags |= SCHED_FLAG_RESET_ON_FORK;
policy &= ~SCHED_RESET_ON_FORK;
attr.sched_policy = policy;