In case of discrete (pretty old) apics we may have cpu_has_apic bit not set but have to check if smp_found_config (MP spec) is there and apic was not disabled. So in case of discrete apic we need to proceed apic handling. Also don't forget to print apic/io-apic for such case as well. Signed-off-by: Cyrill Gorcunov CC: "Maciej W. Rozycki" --- Perhaps this smp_found_config,disable_apic (which are useful for insoectation in x86-32 only apart of cpu_has_apic) are good candidate for helper function, say lapic_from_mp. Dunno.Please comment. arch/x86/kernel/apic/apic.c | 2 +- arch/x86/kernel/apic/io_apic.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) Index: linux-2.6.git/arch/x86/kernel/apic/apic.c ===================================================================== --- linux-2.6.git.orig/arch/x86/kernel/apic/apic.c +++ linux-2.6.git/arch/x86/kernel/apic/apic.c @@ -978,7 +978,7 @@ void lapic_shutdown(void) { unsigned long flags; - if (!cpu_has_apic) + if (!cpu_has_apic && (!smp_found_config || disable_apic)) return; local_irq_save(flags); Index: linux-2.6.git/arch/x86/kernel/apic/io_apic.c ===================================================================== --- linux-2.6.git.orig/arch/x86/kernel/apic/io_apic.c +++ linux-2.6.git/arch/x86/kernel/apic/io_apic.c @@ -1860,7 +1860,7 @@ __apicdebuginit(int) print_all_ICs(void) print_PIC(); /* don't print out if apic is not there */ - if (!cpu_has_apic || disable_apic) + if (!cpu_has_apic && (!smp_found_config || disable_apic)) return 0; print_all_local_APICs(); @@ -1978,7 +1978,7 @@ void disable_IO_APIC(void) /* * Use virtual wire A mode when interrupt remapping is enabled. */ - if (cpu_has_apic) + if (cpu_has_apic || (smp_found_config && !disable_apic)) disconnect_bsp_APIC(!intr_remapping_enabled && ioapic_i8259.pin != -1); } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/