diff --git a/[refs] b/[refs] index d9411c05f31a..ed3df1c5c95a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7ceff013c43c0f38f0d26c79507889c6791c0ea0 +refs/heads/master: 62af3783e4fd8ba9e28416e8e91cb3bdd9fb133e diff --git a/trunk/kernel/sched/fair.c b/trunk/kernel/sched/fair.c index 2d1ac6e2386d..bdf18836f74e 100644 --- a/trunk/kernel/sched/fair.c +++ b/trunk/kernel/sched/fair.c @@ -5344,11 +5344,13 @@ static void task_move_group_fair(struct task_struct *p, int on_rq) * * - Moving a forked child which is waiting for being woken up by * wake_up_new_task(). + * - Moving a task which has been woken up by try_to_wake_up() and + * waiting for actually being woken up by sched_ttwu_pending(). * * To prevent boost or penalty in the new cfs_rq caused by delta * min_vruntime between the two cfs_rqs, we skip vruntime adjustment. */ - if (!on_rq && !p->se.sum_exec_runtime) + if (!on_rq && (!p->se.sum_exec_runtime || p->state == TASK_WAKING)) on_rq = 1; if (!on_rq)