aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-27 11:13:05 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-29 08:17:01 -0500
commitc0b5842a457d44c8788b3fd0c64969be7ef673cd (patch)
tree0e8567fee5ab4865b4dc5806d8b59a1dc174834b /arch
parent3e5095d15276efd14a45393666b1bb7536bf179f (diff)
x86: generalize boot_cpu_id
x86/Voyager can boot on non-zero processors. While that can probably be fixed by properly remapping the physical CPU IDs, keep boot_cpu_id for now for easier transition - and expand it to all of x86. Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/Kconfig4
-rw-r--r--arch/x86/include/asm/cpu.h6
-rw-r--r--arch/x86/kernel/setup.c14
-rw-r--r--arch/x86/kernel/smpboot.c12
4 files changed, 15 insertions, 21 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 3671506fb8df..f4dd851384db 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -238,10 +238,6 @@ config SMP
238 238
239 If you don't know what to do here, say N. 239 If you don't know what to do here, say N.
240 240
241config X86_HAS_BOOT_CPU_ID
242 def_bool y
243 depends on X86_VOYAGER
244
245config SPARSE_IRQ 241config SPARSE_IRQ
246 bool "Support sparse irq numbering" 242 bool "Support sparse irq numbering"
247 depends on PCI_MSI || HT_IRQ 243 depends on PCI_MSI || HT_IRQ
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
index f03b23e32864..b185091bf19c 100644
--- a/arch/x86/include/asm/cpu.h
+++ b/arch/x86/include/asm/cpu.h
@@ -32,10 +32,6 @@ extern void arch_unregister_cpu(int);
32 32
33DECLARE_PER_CPU(int, cpu_state); 33DECLARE_PER_CPU(int, cpu_state);
34 34
35#ifdef CONFIG_X86_HAS_BOOT_CPU_ID 35extern unsigned int boot_cpu_id;
36extern unsigned char boot_cpu_id;
37#else
38#define boot_cpu_id 0
39#endif
40 36
41#endif /* _ASM_X86_CPU_H */ 37#endif /* _ASM_X86_CPU_H */
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index eeb180b1d7aa..609e5af60282 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -112,6 +112,20 @@
112#define ARCH_SETUP 112#define ARCH_SETUP
113#endif 113#endif
114 114
115unsigned int boot_cpu_id __read_mostly;
116
117#ifdef CONFIG_X86_64
118int default_cpu_present_to_apicid(int mps_cpu)
119{
120 return __default_cpu_present_to_apicid(mps_cpu);
121}
122
123int default_check_phys_apicid_present(int boot_cpu_physical_apicid)
124{
125 return __default_check_phys_apicid_present(boot_cpu_physical_apicid);
126}
127#endif
128
115#ifndef CONFIG_DEBUG_BOOT_PARAMS 129#ifndef CONFIG_DEBUG_BOOT_PARAMS
116struct boot_params __initdata boot_params; 130struct boot_params __initdata boot_params;
117#else 131#else
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index e90b3e50b54f..bc7e220ba0b4 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -905,18 +905,6 @@ do_rest:
905 return boot_error; 905 return boot_error;
906} 906}
907 907
908#ifdef CONFIG_X86_64
909int default_cpu_present_to_apicid(int mps_cpu)
910{
911 return __default_cpu_present_to_apicid(mps_cpu);
912}
913
914int default_check_phys_apicid_present(int boot_cpu_physical_apicid)
915{
916 return __default_check_phys_apicid_present(boot_cpu_physical_apicid);
917}
918#endif
919
920int __cpuinit native_cpu_up(unsigned int cpu) 908int __cpuinit native_cpu_up(unsigned int cpu)
921{ 909{
922 int apicid = apic->cpu_present_to_apicid(cpu); 910 int apicid = apic->cpu_present_to_apicid(cpu);