Re: [PATCH v2] x86/acpi: fix panic while AP online later with kernel parameter maxcpus=1
From: Kirill A. Shutemov
Date: Fri Jun 28 2024 - 06:07:56 EST
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