diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 0739ffb8835c72871cbd4ffd9025bdf9806a750a..0d0527cdcd4e789ea3aa4f454cc526ed36803755 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -2370,6 +2370,7 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p) * Silence PROVE_RCU. */ raw_spin_lock_irqsave(&p->pi_lock, flags); + rseq_migrate(p); /* * We're setting the CPU for the first time, we don't migrate, * so use __set_task_cpu(). @@ -2434,6 +2435,7 @@ void wake_up_new_task(struct task_struct *p) * as we're not fully set-up yet. */ p->recent_used_cpu = task_cpu(p); + rseq_migrate(p); __set_task_cpu(p, select_task_rq(p, task_cpu(p), SD_BALANCE_FORK, 0)); #endif rq = __task_rq_lock(p, &rf);