From: Andi Kleen Originally suggested by Zwane Mwaikumbo Ignore all ACPI timer overrides on all Nvidia boards. The fallback doesn't work and no Nvidia boards needs a timer override. But some buggy BIOS have it anyways. Also enable IO-APIC mode by default for Nvidia then. Thanks to Andy Currid for confirming this. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton --- 25-akpm/arch/x86_64/kernel/io_apic.c | 10 ++++++---- 25-akpm/include/asm-x86_64/acpi.h | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff -puN arch/x86_64/kernel/io_apic.c~fix-ioapic-on-nvidia-boards arch/x86_64/kernel/io_apic.c --- 25/arch/x86_64/kernel/io_apic.c~fix-ioapic-on-nvidia-boards Tue Oct 5 14:37:23 2004 +++ 25-akpm/arch/x86_64/kernel/io_apic.c Tue Oct 5 14:37:23 2004 @@ -258,12 +258,14 @@ void __init check_ioapic(void) #endif return; case PCI_VENDOR_ID_NVIDIA: -#ifndef CONFIG_SMP +#ifdef CONFIG_ACPI + /* All timer overrides on Nvidia + seem to be wrong. Skip them. */ + acpi_skip_timer_override = 1; printk(KERN_INFO - "PCI bridge %02x:%02x from %x found. Setting \"noapic\". Overwrite with \"apic\"\n", - num,slot,vendor); - skip_ioapic_setup = 1; + "Nvidia board detected. Ignoring ACPI timer override.\n"); #endif + /* RED-PEN skip them on mptables too? */ return; } diff -puN include/asm-x86_64/acpi.h~fix-ioapic-on-nvidia-boards include/asm-x86_64/acpi.h --- 25/include/asm-x86_64/acpi.h~fix-ioapic-on-nvidia-boards Tue Oct 5 14:37:23 2004 +++ 25-akpm/include/asm-x86_64/acpi.h Tue Oct 5 14:37:23 2004 @@ -166,6 +166,8 @@ extern int acpi_pci_disabled; extern u8 x86_acpiid_to_apicid[]; +extern int acpi_skip_timer_override; + #endif /*__KERNEL__*/ #endif /*_ASM_ACPI_H*/ _