patch-2.4.0-test12 linux/arch/i386/kernel/smpboot.c

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

diff -u --recursive --new-file v2.4.0-test11/linux/arch/i386/kernel/smpboot.c linux/arch/i386/kernel/smpboot.c
@@ -886,8 +886,10 @@
 	/*
 	 * If we couldn't find a local APIC, then get out of here now!
 	 */
-	if (!verify_local_APIC()) {
-		printk(KERN_ERR "BIOS bug, local APIC at 0x%lX not detected!...\n", mp_lapic_addr);
+	if (APIC_INTEGRATED(apic_version[boot_cpu_id]) &&
+	    !test_bit(X86_FEATURE_APIC, boot_cpu_data.x86_capability)) {
+		printk(KERN_ERR "BIOS bug, local APIC #%d not detected!...\n",
+			boot_cpu_id);
 		printk(KERN_ERR "... forcing use of dummy APIC emulation. (tell your hw vendor)\n");
 #ifndef CONFIG_VISWS
 		io_apic_irqs = 0;
@@ -896,6 +898,8 @@
 		smp_num_cpus = 1;
 		goto smp_done;
 	}
+
+	verify_local_APIC();
 
 	/*
 	 * If SMP should be disabled, then really disable it!

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)