diff options
author | Ingo Molnar <mingo@elte.hu> | 2007-11-26 14:42:20 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2007-11-26 14:42:20 -0500 |
commit | f44d9efd3510776216938fef84adc99cc0e12412 (patch) | |
tree | 29e7db613b53e42e32964a36aeb3b4b4d414b19d /arch | |
parent | 52bfb36050c8529d9031d2c2513b281a360922ec (diff) |
x86: fix APIC related bootup crash on Athlon XP CPUs
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>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/apic_32.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c index 08b07c176962..96986b46bc85 100644 --- a/arch/x86/kernel/apic_32.c +++ b/arch/x86/kernel/apic_32.c | |||
@@ -789,7 +789,7 @@ void __init sync_Arb_IDs(void) | |||
789 | * Unsupported on P4 - see Intel Dev. Manual Vol. 3, Ch. 8.6.1 And not | 789 | * Unsupported on P4 - see Intel Dev. Manual Vol. 3, Ch. 8.6.1 And not |
790 | * needed on AMD. | 790 | * needed on AMD. |
791 | */ | 791 | */ |
792 | if (modern_apic()) | 792 | if (modern_apic() || boot_cpu_data.x86_vendor == X86_VENDOR_AMD) |
793 | return; | 793 | return; |
794 | /* | 794 | /* |
795 | * Wait for idle. | 795 | * Wait for idle. |