aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/smpboot_32.c
diff options
context:
space:
mode:
authorGlauber de Oliveira Costa <gcosta@redhat.com>2008-03-19 13:25:23 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-17 11:41:01 -0400
commit4fe29a85642544503cf81e9cf251ef0f4e65b162 (patch)
tree1fe0ed2b1e80e7c638fc12e32806e90ba0272516 /arch/x86/kernel/smpboot_32.c
parentfbac7fcbadc54cc5d374873a2e60e924a056d198 (diff)
x86: use specialized routine for setup per-cpu area
We use the same routing as x86_64, moved now to setup.c. Just with a few ifdefs inside. Note that this routing uses prefill_possible_map(). It has the very nice side effect of allowing hotplugging of cpus that are marked as present but disabled by acpi bios. Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/smpboot_32.c')
-rw-r--r--arch/x86/kernel/smpboot_32.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c
index 92a5df6190b5..bf5c9e9f26c1 100644
--- a/arch/x86/kernel/smpboot_32.c
+++ b/arch/x86/kernel/smpboot_32.c
@@ -665,6 +665,7 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu)
665 unmap_cpu_to_logical_apicid(cpu); 665 unmap_cpu_to_logical_apicid(cpu);
666 cpu_clear(cpu, cpu_callout_map); /* was set here (do_boot_cpu()) */ 666 cpu_clear(cpu, cpu_callout_map); /* was set here (do_boot_cpu()) */
667 cpu_clear(cpu, cpu_initialized); /* was set by cpu_init() */ 667 cpu_clear(cpu, cpu_initialized); /* was set by cpu_init() */
668 cpu_clear(cpu, cpu_possible_map);
668 cpucount--; 669 cpucount--;
669 } else { 670 } else {
670 per_cpu(x86_cpu_to_apicid, cpu) = apicid; 671 per_cpu(x86_cpu_to_apicid, cpu) = apicid;
@@ -743,6 +744,7 @@ EXPORT_SYMBOL(xquad_portio);
743 744
744static void __init disable_smp(void) 745static void __init disable_smp(void)
745{ 746{
747 cpu_possible_map = cpumask_of_cpu(0);
746 smpboot_clear_io_apic_irqs(); 748 smpboot_clear_io_apic_irqs();
747 phys_cpu_present_map = physid_mask_of_physid(0); 749 phys_cpu_present_map = physid_mask_of_physid(0);
748 map_cpu_to_logical_apicid(); 750 map_cpu_to_logical_apicid();