diff options
Diffstat (limited to 'kernel/sched')
-rw-r--r-- | kernel/sched/core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 7a00317cbd56..134c531429be 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3366,8 +3366,11 @@ static void __setscheduler(struct rq *rq, struct task_struct *p, if (cpumask_equal(&p->cpus_allowed, cpu_all_mask)) do_set_cpus_allowed(p, &hmp_slow_cpu_mask); if (!cpumask_empty(&hmp_slow_cpu_mask)) - if (cpumask_equal(&p->cpus_allowed, cpu_all_mask)) + if (cpumask_equal(&p->cpus_allowed, cpu_all_mask)) { + p->nr_cpus_allowed = + cpumask_weight(&hmp_slow_cpu_mask); do_set_cpus_allowed(p, &hmp_slow_cpu_mask); + } #endif } else p->sched_class = &fair_sched_class; |