On Tue, Feb 21 2023 at 23:18, David Woodhouse wrote: > On Tue, 2023-02-21 at 22:41 +0100, Thomas Gleixner wrote: >> + >> + if (IS_ENABLED(CONFIG_64BIT) && IS_ENABLED(CONFIG_SMP)) >> + smpboot_control = saved_smpboot_ctrl; >> return 0; >> } >> > > But wait, why is this giving it a dedicated temp_stack anyway? Why > can't it use that CPU's idle thread stack like we usually do? I already > made idle_thread_get() accessible from here. So we could do this... Because this very CPU is still online and from the kernels POV is does not go offline. It goes into the firmware blackhole and comes back magically through the startup code. That means this very CPUs indle thread stack is in use and the resume path will scribble over it. Maybe you won't notice because it only clobbers top of stack which is never used again because the idle thread does not return. But correct is something different. Thanks, tglx