Messages in this thread Patch in this message | | | From | Jesse Barnes <> | Subject | Re: PCI MSI breaks when booting with nosmp | Date | Mon, 21 Apr 2008 14:14:44 -0700 |
| |
On Monday, April 21, 2008 2:09 pm Andi Kleen wrote: > > Both call disable_ioapic_setup(), so how can they not be the same? > > See Jesse's explanation. Basically there is special code in the smp > boot up to handle 0 CPUs and it disables all APICs. > > This is very old and crufty and somewhat obsolete logic, > but it is like that.
This might be closer to a real fix. Can you confirm that this works for you Jean?
Thanks, Jesse
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index e6abe8a..7cdf930 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@ -1138,14 +1138,10 @@ static int __init smp_sanity_check(unsigned max_cpus) "forcing use of dummy APIC emulation.\n"); smpboot_clear_io_apic(); #ifdef CONFIG_X86_32 - if (nmi_watchdog == NMI_LOCAL_APIC) { - printk(KERN_INFO "activating minimal APIC for" - "NMI watchdog use.\n"); - connect_bsp_APIC(); - setup_local_APIC(); - end_local_APIC_setup(); - } + connect_bsp_APIC(); #endif + setup_local_APIC(); + end_local_APIC_setup(); return -1; }
| |