[PATCH][2.6] Don't disable IOAPIC with nosmp

From: Zwane Mwaikambo
Date: Wed Nov 05 2003 - 19:30:19 EST


This patch addresses bugzilla bug#1487
http://bugme.osdl.org/show_bug.cgi?id=1487

We're disabling the IOAPIC when someone boots with the nosmp kernel
parameter, this happens to break interrupt routing for some folks.

Tested on the following;
SMP P3 (afflicted system)
UP AMD K6
UP Intel Celeron
SMP 3x P133

Index: linux-2.6.0-test9-mm2/arch/i386/kernel/smpboot.c
===================================================================
RCS file: /build/cvsroot/linux-2.6.0-test9-mm2/arch/i386/kernel/smpboot.c,v
retrieving revision 1.1.1.1
diff -u -p -B -r1.1.1.1 smpboot.c
--- linux-2.6.0-test9-mm2/arch/i386/kernel/smpboot.c 5 Nov 2003 19:57:23 -0000 1.1.1.1
+++ linux-2.6.0-test9-mm2/arch/i386/kernel/smpboot.c 5 Nov 2003 22:50:48 -0000
@@ -995,11 +995,8 @@ static void __init smp_boot_cpus(unsigne
* If SMP should be disabled, then really disable it!
*/
if (!max_cpus) {
- smp_found_config = 0;
- printk(KERN_INFO "SMP mode deactivated, forcing use of dummy APIC emulation.\n");
- smpboot_clear_io_apic_irqs();
+ printk(KERN_INFO "SMP mode deactivated, booting 1 Processor\n");
phys_cpu_present_map = physid_mask_of_physid(0);
- return;
}

connect_bsp_APIC();
@@ -1022,6 +1019,9 @@ static void __init smp_boot_cpus(unsigne

kicked = 1;
for (bit = 0; kicked < NR_CPUS && bit < MAX_APICS; bit++) {
+ if (kicked > max_cpus)
+ break;
+
apicid = cpu_present_to_apicid(bit);
/*
* Don't even attempt to start the boot CPU!
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/