patch-2.1.132 linux/arch/i386/kernel/smp.c

Next file: linux/arch/i386/kernel/sys_i386.c
Previous file: linux/arch/i386/kernel/process.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.131/linux/arch/i386/kernel/smp.c linux/arch/i386/kernel/smp.c
@@ -29,23 +29,17 @@
  */
 
 #include <linux/config.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
-#include <linux/timer.h>
-#include <linux/sched.h>
 #include <linux/mm.h>
 #include <linux/kernel_stat.h>
 #include <linux/delay.h>
 #include <linux/mc146818rtc.h>
 #include <asm/i82489.h>
-#include <linux/smp.h>
 #include <linux/smp_lock.h>
 #include <linux/interrupt.h>
 #include <linux/init.h>
 #include <asm/pgtable.h>
 #include <asm/bitops.h>
 #include <asm/pgtable.h>
-#include <asm/smp.h>
 #include <asm/io.h>
 
 #ifdef CONFIG_MTRR
@@ -159,6 +153,7 @@
 int mp_bus_id_to_pci_bus [MAX_MP_BUSSES] = { -1, };
 int mp_current_pci_id = 0;
 unsigned long mp_lapic_addr = 0;
+int skip_ioapic_setup = 0;				/* 1 if "noapic" boot option passed */
 
 /* #define SMP_DEBUG */
 
@@ -405,7 +400,11 @@
 		}
 	}
 	if (ioapics > 1)
+	{
 		printk("Warning: Multiple IO-APICs not yet supported.\n");
+		printk("Warning: switching to non APIC mode.\n");
+		skip_ioapic_setup=1;
+	}
 	return num_processors;
 }
 
@@ -1170,11 +1169,11 @@
 	 * Here we can be sure that there is an IO-APIC in the system. Let's
 	 * go and set it up:
 	 */
-	setup_IO_APIC();
+	if (!skip_ioapic_setup) 
+		setup_IO_APIC();
 
 smp_done:
 }
-
 
 void send_IPI(int dest, int vector)
 {

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov