diff --git a/[refs] b/[refs] index d014966f0217..2cb85d542596 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 30432094a7f506ad24997a3ba6aed913ab61c01d +refs/heads/master: c4acb2c0669c5c5c9b28e9d02a34b5c67edf7092 diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index 677c80b9a6b5..d99aeabeb72f 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -3013,6 +3013,10 @@ static int move_tasks(struct rq *this_rq, int this_cpu, struct rq *busiest, max_load_move - total_load_moved, sd, idle, all_pinned, &this_best_prio); class = class->next; + + if (idle == CPU_NEWLY_IDLE && this_rq->nr_running) + break; + } while (class && max_load_move > total_load_moved); return total_load_moved > 0;