diff options
author | Glauber de Oliveira Costa <gcosta@redhat.com> | 2008-03-19 13:24:59 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-17 11:40:59 -0400 |
commit | d0173aeac4f7fa90a63319b817bd207bdc0ac87e (patch) | |
tree | f1a70f264d7b749ea4377bb59cbfb7268e84f5f4 | |
parent | 1af8a0c1b3b85b1007f49917ea6a351b7aeb7562 (diff) |
x86: use start_ipi_hook in x86_64
It is used to match i386. The definition for the non-paravirt
case is moved to smp.h instead of smp_32.h
Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | arch/x86/kernel/smpboot_64.c | 8 | ||||
-rw-r--r-- | include/asm-x86/smp.h | 3 | ||||
-rw-r--r-- | include/asm-x86/smp_32.h | 4 |
3 files changed, 11 insertions, 4 deletions
diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c index 57ebe6c04305..13ab1123d1d2 100644 --- a/arch/x86/kernel/smpboot_64.c +++ b/arch/x86/kernel/smpboot_64.c | |||
@@ -345,6 +345,14 @@ static int __cpuinit wakeup_secondary_via_INIT(int phys_apicid, unsigned int sta | |||
345 | num_starts = 2; | 345 | num_starts = 2; |
346 | 346 | ||
347 | /* | 347 | /* |
348 | * Paravirt / VMI wants a startup IPI hook here to set up the | ||
349 | * target processor state. | ||
350 | */ | ||
351 | startup_ipi_hook(phys_apicid, (unsigned long) start_secondary, | ||
352 | (unsigned long) init_rsp); | ||
353 | |||
354 | |||
355 | /* | ||
348 | * Run STARTUP IPI loop. | 356 | * Run STARTUP IPI loop. |
349 | */ | 357 | */ |
350 | Dprintk("#startup loops: %d.\n", num_starts); | 358 | Dprintk("#startup loops: %d.\n", num_starts); |
diff --git a/include/asm-x86/smp.h b/include/asm-x86/smp.h index 513c8571a4a0..4dc271b43767 100644 --- a/include/asm-x86/smp.h +++ b/include/asm-x86/smp.h | |||
@@ -33,6 +33,9 @@ struct smp_ops { | |||
33 | extern void set_cpu_sibling_map(int cpu); | 33 | extern void set_cpu_sibling_map(int cpu); |
34 | 34 | ||
35 | #ifdef CONFIG_SMP | 35 | #ifdef CONFIG_SMP |
36 | #ifndef CONFIG_PARAVIRT | ||
37 | #define startup_ipi_hook(phys_apicid, start_eip, start_esp) do { } while (0) | ||
38 | #endif | ||
36 | extern struct smp_ops smp_ops; | 39 | extern struct smp_ops smp_ops; |
37 | 40 | ||
38 | static inline void smp_send_stop(void) | 41 | static inline void smp_send_stop(void) |
diff --git a/include/asm-x86/smp_32.h b/include/asm-x86/smp_32.h index 4fec2feb6ac8..76740def6092 100644 --- a/include/asm-x86/smp_32.h +++ b/include/asm-x86/smp_32.h | |||
@@ -30,10 +30,6 @@ DECLARE_PER_CPU(u16, cpu_llc_id); | |||
30 | DECLARE_PER_CPU(u16, x86_cpu_to_apicid); | 30 | DECLARE_PER_CPU(u16, x86_cpu_to_apicid); |
31 | 31 | ||
32 | #ifdef CONFIG_SMP | 32 | #ifdef CONFIG_SMP |
33 | #ifndef CONFIG_PARAVIRT | ||
34 | #define startup_ipi_hook(phys_apicid, start_eip, start_esp) do { } while (0) | ||
35 | #endif | ||
36 | |||
37 | /* | 33 | /* |
38 | * This function is needed by all SMP systems. It must _always_ be valid | 34 | * This function is needed by all SMP systems. It must _always_ be valid |
39 | * from the initial startup. We map APIC_BASE very early in page_setup(), | 35 | * from the initial startup. We map APIC_BASE very early in page_setup(), |