aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86_64/kernel/smpboot.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2005-05-17 00:53:35 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-05-17 10:59:16 -0400
commit18a2b6471277c9ffbaa14a0c87a11a075eb354bd (patch)
treefda2050de7a28d40d036dcd02811ba315994a1c2 /arch/x86_64/kernel/smpboot.c
parent751521149a05e308d863d01ced61080ce1a2ec99 (diff)
[PATCH] x86_64: Don't assume BSP has ID 0 in new smp bootup
This patch removes the assumption that LAPIC entries contain the BSP as its first entry. This is a slight improvement to the temporary fix submitted by Suresh Siddha. - Removes assumption that LAPIC entries contain BSP first. - Builds x86_acpiid_to_apicid[] and bios_cpu_apicid[] properly with BSP as first entry. - Made maxcpus=1 boot on these systems. Since the parsing earlier in arch/x86_64/kernel/mpparse.c stopped after maxcpus entries, other entries were not processed, this causes kernel not to boot on these systems. TBD: x86_acpiid_to_apicid and bios_cpu_apicid[] seem to be exactly the same. This could be removed, but might need more work to cleanup. Signed-off-by: Ashok Raj <ashok.raj@intel.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/kernel/smpboot.c')
-rw-r--r--arch/x86_64/kernel/smpboot.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/x86_64/kernel/smpboot.c b/arch/x86_64/kernel/smpboot.c
index d00e494c1a39..5abdee1e16a5 100644
--- a/arch/x86_64/kernel/smpboot.c
+++ b/arch/x86_64/kernel/smpboot.c
@@ -645,7 +645,6 @@ static int __cpuinit do_boot_cpu(int cpu, int apicid)
645 printk("failed fork for CPU %d\n", cpu); 645 printk("failed fork for CPU %d\n", cpu);
646 return PTR_ERR(idle); 646 return PTR_ERR(idle);
647 } 647 }
648 x86_cpu_to_apicid[cpu] = apicid;
649 648
650 cpu_pda[cpu].pcurrent = idle; 649 cpu_pda[cpu].pcurrent = idle;
651 650
@@ -954,7 +953,6 @@ void __cpuinit smp_prepare_cpus(unsigned int max_cpus)
954 GET_APIC_ID(apic_read(APIC_ID)), boot_cpu_id); 953 GET_APIC_ID(apic_read(APIC_ID)), boot_cpu_id);
955 /* Or can we switch back to PIC here? */ 954 /* Or can we switch back to PIC here? */
956 } 955 }
957 x86_cpu_to_apicid[0] = boot_cpu_id;
958 956
959 /* 957 /*
960 * Now start the IO-APICs 958 * Now start the IO-APICs