On Fri, Jun 28, 2024 at 04:21:19PM +0800, Zhiquan Li wrote: > The issue was found on the platform that using "Multiprocessor Wakeup > Structure"[1] to startup secondary CPU, which is usually used by > encrypted guest. When restrict boot time CPU to 1 with the kernel > parameter "maxcpus=1" and bring other CPUs online later, there will be > a kernel panic. > > The variable acpi_mp_wake_mailbox, which holds the virtual address of > the MP Wakeup Structure mailbox, will be set as read-only after init. > If the first AP gets online later, after init, the attempt to update > the variable results in panic. > > But it is worth noting that the memremap() function that initializes the > variable cannot be moved into acpi_parse_mp_wake() because memremap() is > not yet functional at this point in the boot process. The memremap() call that initializes the variable cannot be moved into acpi_parse_mp_wake() because memremap() is not functional at that point in the boot process. > > [1] Details about the MP Wakeup structure can be found in ACPI v6.4, in > the "Multiprocessor Wakeup Structure" section. > > Signed-off-by: Zhiquan Li <zhiquan1.li@xxxxxxxxx> > Otherwise looks good to me. Reviewed-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> -- Kiryl Shutsemau / Kirill A. Shutemov