x86: fix APIC related bootup crash on Athlon XP CPUs
authorIngo Molnar <mingo@elte.hu>
Mon, 26 Nov 2007 19:42:20 +0000 (20:42 +0100)
committerIngo Molnar <mingo@elte.hu>
Mon, 26 Nov 2007 19:42:20 +0000 (20:42 +0100)
warmbloodedcreature@gmail.com reported that an APIC-enabled
Asus a7v8x-x with an Athlon XP reboots early in the bootup:

   http://bugzilla.kernel.org/show_bug.cgi?id=8723

after a long marathon of spontaneous-reboot debugging, it turns
out to be caused by sync_Arb_ids(). AMD CPUs never really needed
this sequence anyway, so just return early if we meet an AMD CPU.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/kernel/apic_32.c

index 08b07c176962f9c525d402adf5609d5c7c64f771..96986b46bc856844a8bed97a8b8a871293df92e8 100644 (file)
@@ -789,7 +789,7 @@ void __init sync_Arb_IDs(void)
         * Unsupported on P4 - see Intel Dev. Manual Vol. 3, Ch. 8.6.1 And not
         * needed on AMD.
         */
-       if (modern_apic())
+       if (modern_apic() || boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
                return;
        /*
         * Wait for idle.