x86: use start_ipi_hook in x86_64
authorGlauber de Oliveira Costa <gcosta@redhat.com>
Wed, 19 Mar 2008 17:24:59 +0000 (14:24 -0300)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Apr 2008 15:40:59 +0000 (17:40 +0200)
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>
arch/x86/kernel/smpboot_64.c
include/asm-x86/smp.h
include/asm-x86/smp_32.h

index 57ebe6c04305f6859e8bc70b9a5bfe5a5c8c78fc..13ab1123d1d266c0057e6de90eec1c273f7667e4 100644 (file)
@@ -344,6 +344,14 @@ static int __cpuinit wakeup_secondary_via_INIT(int phys_apicid, unsigned int sta
 
        num_starts = 2;
 
+       /*
+        * Paravirt / VMI wants a startup IPI hook here to set up the
+        * target processor state.
+        */
+       startup_ipi_hook(phys_apicid, (unsigned long) start_secondary,
+                       (unsigned long) init_rsp);
+
+
        /*
         * Run STARTUP IPI loop.
         */
index 513c8571a4a00b0a8215b93062665238d9398e36..4dc271b43767e599fa91c71c30e5f158c115b59c 100644 (file)
@@ -33,6 +33,9 @@ struct smp_ops {
 extern void set_cpu_sibling_map(int cpu);
 
 #ifdef CONFIG_SMP
+#ifndef CONFIG_PARAVIRT
+#define startup_ipi_hook(phys_apicid, start_eip, start_esp) do { } while (0)
+#endif
 extern struct smp_ops smp_ops;
 
 static inline void smp_send_stop(void)
index 4fec2feb6ac82b088e4fe969beb718459fb1bd6f..76740def6092fc30b09b7dc5313528f3172190c1 100644 (file)
@@ -30,10 +30,6 @@ DECLARE_PER_CPU(u16, cpu_llc_id);
 DECLARE_PER_CPU(u16, x86_cpu_to_apicid);
 
 #ifdef CONFIG_SMP
-#ifndef CONFIG_PARAVIRT
-#define startup_ipi_hook(phys_apicid, start_eip, start_esp) do { } while (0)
-#endif
-
 /*
  * This function is needed by all SMP systems. It must _always_ be valid
  * from the initial startup. We map APIC_BASE very early in page_setup(),