diff options
author | Glauber de Oliveira Costa <gcosta@redhat.com> | 2008-03-19 13:25:57 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-17 11:41:02 -0400 |
commit | 9d97d0da71ad6c7ceb76b4e29b02bed1ee9d4cd2 (patch) | |
tree | f42192da4062c59f6e38f12439914d523b70b12e | |
parent | 7cc3959ecd830796231f50bf5e42dc018b3694f2 (diff) |
x86: move stack_start to smp.h
voyager would conflict with it, but the types are ultimately
compatible. So remove the extern definition from voyager_smp.c
in favour of the common one
Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | arch/x86/kernel/smpboot_32.c | 6 | ||||
-rw-r--r-- | arch/x86/mach-voyager/voyager_smp.c | 7 | ||||
-rw-r--r-- | include/asm-x86/smp.h | 7 |
3 files changed, 7 insertions, 13 deletions
diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c index 1eb7b73b45a3..ae25927f08c1 100644 --- a/arch/x86/kernel/smpboot_32.c +++ b/arch/x86/kernel/smpboot_32.c | |||
@@ -257,12 +257,6 @@ void __devinit initialize_secondary(void) | |||
257 | :"m" (current->thread.sp),"m" (current->thread.ip)); | 257 | :"m" (current->thread.sp),"m" (current->thread.ip)); |
258 | } | 258 | } |
259 | 259 | ||
260 | /* Static state in head.S used to set up a CPU */ | ||
261 | extern struct { | ||
262 | void * sp; | ||
263 | unsigned short ss; | ||
264 | } stack_start; | ||
265 | |||
266 | static inline void __inquire_remote_apic(int apicid) | 260 | static inline void __inquire_remote_apic(int apicid) |
267 | { | 261 | { |
268 | unsigned i, regs[] = { APIC_ID >> 4, APIC_LVR >> 4, APIC_SPIV >> 4 }; | 262 | unsigned i, regs[] = { APIC_ID >> 4, APIC_LVR >> 4, APIC_SPIV >> 4 }; |
diff --git a/arch/x86/mach-voyager/voyager_smp.c b/arch/x86/mach-voyager/voyager_smp.c index 11b806c7ed94..4397235c2e30 100644 --- a/arch/x86/mach-voyager/voyager_smp.c +++ b/arch/x86/mach-voyager/voyager_smp.c | |||
@@ -520,13 +520,6 @@ static void __init do_boot_cpu(__u8 cpu) | |||
520 | & ~(voyager_extended_vic_processors | 520 | & ~(voyager_extended_vic_processors |
521 | & voyager_allowed_boot_processors); | 521 | & voyager_allowed_boot_processors); |
522 | 522 | ||
523 | /* This is an area in head.S which was used to set up the | ||
524 | * initial kernel stack. We need to alter this to give the | ||
525 | * booting CPU a new stack (taken from its idle process) */ | ||
526 | extern struct { | ||
527 | __u8 *sp; | ||
528 | unsigned short ss; | ||
529 | } stack_start; | ||
530 | /* This is the format of the CPI IDT gate (in real mode) which | 523 | /* This is the format of the CPI IDT gate (in real mode) which |
531 | * we're hijacking to boot the CPU */ | 524 | * we're hijacking to boot the CPU */ |
532 | union IDTFormat { | 525 | union IDTFormat { |
diff --git a/include/asm-x86/smp.h b/include/asm-x86/smp.h index d02e6eacee39..78ef16dd194b 100644 --- a/include/asm-x86/smp.h +++ b/include/asm-x86/smp.h | |||
@@ -28,6 +28,13 @@ extern const unsigned char trampoline_data []; | |||
28 | extern const unsigned char trampoline_end []; | 28 | extern const unsigned char trampoline_end []; |
29 | extern unsigned char *trampoline_base; | 29 | extern unsigned char *trampoline_base; |
30 | 30 | ||
31 | /* Static state in head.S used to set up a CPU */ | ||
32 | extern struct { | ||
33 | void *sp; | ||
34 | unsigned short ss; | ||
35 | } stack_start; | ||
36 | |||
37 | |||
31 | struct smp_ops { | 38 | struct smp_ops { |
32 | void (*smp_prepare_boot_cpu)(void); | 39 | void (*smp_prepare_boot_cpu)(void); |
33 | void (*smp_prepare_cpus)(unsigned max_cpus); | 40 | void (*smp_prepare_cpus)(unsigned max_cpus); |