From: Youngtae Lee Date: Wed, 28 Jun 2017 10:35:54 +0000 (-0700) Subject: [9820] sched: core: fix bug that rt could not be binded to little X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=c47460a0d47de537d62b5bd8dc030807250d940d;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git [9820] sched: core: fix bug that rt could not be binded to little Current rt little binding code is working when target task is on runqueue. Remove this condition to all rt tasks bind to little. Change-Id: I2f1883e2e8dffef25920848f6ef87b38a231ff0c Signed-off-by: Youngtae Lee --- diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 625be6676047..d26941aa5af9 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4307,6 +4307,15 @@ change: if (running) set_curr_task(rq, p); + if (p->sched_class == &rt_sched_class) { + struct cpumask mask; + + cpumask_andnot(&mask, &p->cpus_allowed, cpu_coregroup_mask(4)); + cpumask_andnot(&mask, &p->cpus_allowed, cpu_coregroup_mask(6)); + if (!cpumask_empty(&mask)) + do_set_cpus_allowed(p, &mask); + } + check_class_changed(rq, p, prev_class, oldprio); /* Avoid rq from going away on us: */