summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2024-03-22 19:56:39 +0100
committerBorislav Petkov (AMD) <bp@alien8.de>2024-03-23 12:41:48 +0100
commitf2208aa12c27bfada3c15c550c03ca81d42dcac2 (patch)
treee84b5d79fdcc550dccb2986e5bf2a20b24e16b95
parentx86/topology: Handle the !APIC case gracefully (diff)
downloadlinux-f2208aa12c27bfada3c15c550c03ca81d42dcac2.tar.xz
linux-f2208aa12c27bfada3c15c550c03ca81d42dcac2.zip
x86/mpparse: Register APIC address only once
The APIC address is registered twice. First during the early detection and afterwards when actually scanning the table for APIC IDs. The APIC and topology core warn about the second attempt. Restrict it to the early detection call. Fixes: 81287ad65da5 ("x86/apic: Sanitize APIC address setup") Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Tested-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/20240322185305.297774848@linutronix.de
-rw-r--r--arch/x86/kernel/mpparse.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index 1ccd30c8246f..e89171b0347a 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -197,12 +197,12 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
if (!smp_check_mpc(mpc, oem, str))
return 0;
- /* Initialize the lapic mapping */
- if (!acpi_lapic)
- register_lapic_address(mpc->lapic);
-
- if (early)
+ if (early) {
+ /* Initialize the lapic mapping */
+ if (!acpi_lapic)
+ register_lapic_address(mpc->lapic);
return 1;
+ }
/* Now process the configuration blocks. */
while (count < mpc->length) {