Skip to content

Commit 63acd42

Browse files
holio0Peter Zijlstra
authored andcommitted
sched/scs: Reset the shadow stack when idle_task_exit
Commit f1a0a37 ("sched/core: Initialize the idle task with preemption disabled") removed the init_idle() call from idle_thread_get(). This was the sole call-path on hotplug that resets the Shadow Call Stack (scs) Stack Pointer (sp). Not resetting the scs-sp leads to scs overflow after enough hotplug cycles. Therefore add an explicit scs_task_reset() to the hotplug code to make sure the scs-sp does get reset on hotplug. Fixes: f1a0a37 ("sched/core: Initialize the idle task with preemption disabled") Signed-off-by: Woody Lin <[email protected]> [peterz: Changelog] Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Reviewed-by: Valentin Schneider <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 519d819 commit 63acd42

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

kernel/sched/core.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8795,6 +8795,7 @@ void idle_task_exit(void)
87958795
finish_arch_post_lock_switch();
87968796
}
87978797

8798+
scs_task_reset(current);
87988799
/* finish_cpu(), as ran on the BP, will clean up the active_mm state */
87998800
}
88008801

0 commit comments

Comments
 (0)