]> git.hungrycats.org Git - linux/commitdiff
x86/mpparse: Register APIC address only once
authorThomas Gleixner <tglx@linutronix.de>
Fri, 22 Mar 2024 18:56:39 +0000 (19:56 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Apr 2024 13:11:44 +0000 (15:11 +0200)
[ Upstream commit f2208aa12c27bfada3c15c550c03ca81d42dcac2 ]

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
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/kernel/mpparse.c

index b223922248e9f0af271a0fa69b19afb495b9840f..15c700d3587007489f5c457bcae9b492cbf90f4e 100644 (file)
@@ -196,12 +196,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) {