X-Git-Url: http://plrg.eecs.uci.edu/git/?p=firefly-linux-kernel-4.4.55.git;a=blobdiff_plain;f=kernel%2Fsched%2Ffair.c;h=67629fa15d58e44b72c428afdb37cf31024381d5;hp=6d84df9366edaa0535b24636ad41f3f4d6a36d37;hb=d4773e1407b6d59a202bd4ce8acc83deaceafa29;hpb=ec801e81f6b5dfba32c0be93801fc785f7e962b2 diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 6d84df9366ed..67629fa15d58 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4866,6 +4866,7 @@ static int sched_group_energy(struct energy_env *eenv) struct sched_group *sg_shared_cap = NULL; cpu = cpumask_first(&visit_cpus); + cpumask_clear_cpu(cpu, &visit_cpus); /* * Is the group utilization affected by cpus outside this @@ -4928,8 +4929,12 @@ static int sched_group_energy(struct energy_env *eenv) total_energy += sg_busy_energy + sg_idle_energy; - if (!sd->child) - cpumask_xor(&visit_cpus, &visit_cpus, sched_group_cpus(sg)); + if (!sd->child) { + int i; + + for_each_cpu(i, sched_group_cpus(sg)) + cpumask_clear_cpu(i, &visit_cpus); + } if (cpumask_equal(sched_group_cpus(sg), sched_group_cpus(eenv->sg_top))) goto next_cpu;