diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 9671f3f08ba3..70682a97194c 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6940,8 +6940,10 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf, bool force) if (!force && is_per_cpu_kthread(next)) { INIT_LIST_HEAD(&next->percpu_kthread_node); list_add(&next->percpu_kthread_node, &percpu_kthreads); + + /* DEQUEUE_SAVE not used due to move_entity in rt */ deactivate_task(rq, next, - DEQUEUE_NOCLOCK | DEQUEUE_SAVE); + DEQUEUE_NOCLOCK); continue; } @@ -6989,7 +6991,9 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf, bool force) list_for_each_entry_safe(next, tmp, &percpu_kthreads, percpu_kthread_node) { - activate_task(rq, next, ENQUEUE_NOCLOCK | ENQUEUE_RESTORE); + + /* ENQUEUE_RESTORE not used due to move_entity in rt */ + activate_task(rq, next, ENQUEUE_NOCLOCK); list_del(&next->percpu_kthread_node); }