summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched_fair.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index b9e426a8a09f..827a0636525a 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -972,10 +972,11 @@ static void task_new_fair(struct rq *rq, struct task_struct *p)
if (sysctl_sched_child_runs_first &&
curr->vruntime < se->vruntime) {
-
- dequeue_entity(cfs_rq, curr, 0);
+ /*
+ * Upon rescheduling, sched_class::put_prev_task() will place
+ * 'current' within the tree based on its new key value.
+ */
swap(curr->vruntime, se->vruntime);
- enqueue_entity(cfs_rq, curr, 0);
}
update_stats_enqueue(cfs_rq, se);