aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/smpboot.c
diff options
context:
space:
mode:
authorGlauber de Oliveira Costa <gcosta@redhat.com>2008-03-19 13:26:01 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-17 11:41:03 -0400
commita8db8453ff52609b14716361651ad10d2ab66682 (patch)
tree1356ff182b2399c391a1ac90a7828910ed108259 /arch/x86/kernel/smpboot.c
parentbbc2ff6a91a4eef8030018cd389bb12352d11b34 (diff)
x86: merge smp_prepare_boot_cpu
it is practically the same between arches now, so it is moved to smpboot.c. Minor differences (gdt initialization) live inside an ifdef Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r--arch/x86/kernel/smpboot.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index a36ae2785c48..b214d8dcc07a 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -24,6 +24,9 @@
24#include <mach_wakecpu.h> 24#include <mach_wakecpu.h>
25#include <smpboot_hooks.h> 25#include <smpboot_hooks.h>
26 26
27/* State of each CPU */
28DEFINE_PER_CPU(int, cpu_state) = { 0 };
29
27/* Store all idle threads, this can be reused instead of creating 30/* Store all idle threads, this can be reused instead of creating
28* a new thread. Also avoids complicated thread destroy functionality 31* a new thread. Also avoids complicated thread destroy functionality
29* for idle threads. 32* for idle threads.
@@ -999,6 +1002,21 @@ int __cpuinit native_cpu_up(unsigned int cpu)
999 return 0; 1002 return 0;
1000} 1003}
1001 1004
1005/*
1006 * Early setup to make printk work.
1007 */
1008void __init native_smp_prepare_boot_cpu(void)
1009{
1010 int me = smp_processor_id();
1011#ifdef CONFIG_X86_32
1012 init_gdt(me);
1013 switch_to_new_gdt();
1014#endif
1015 /* already set me in cpu_online_map in boot_cpu_init() */
1016 cpu_set(me, cpu_callout_map);
1017 per_cpu(cpu_state, me) = CPU_ONLINE;
1018}
1019
1002#ifdef CONFIG_HOTPLUG_CPU 1020#ifdef CONFIG_HOTPLUG_CPU
1003void remove_siblinginfo(int cpu) 1021void remove_siblinginfo(int cpu)
1004{ 1022{