summaryrefslogtreecommitdiff
path: root/kernel/sched
diff options
context:
space:
mode:
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 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;