x86: set ->trampoline_phys_low/high on 64-bit too
authorIngo Molnar <mingo@elte.hu>
Wed, 28 Jan 2009 15:15:16 +0000 (16:15 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 28 Jan 2009 22:20:32 +0000 (23:20 +0100)
64-bit x86 has zero for ->trampoline_phys_low/high, but the smpboot
code can use these values - so it's better to set them up to their
correct values.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/genapic.h
arch/x86/include/asm/mach-default/mach_wakecpu.h
arch/x86/kernel/genapic_flat_64.c
arch/x86/kernel/genx2apic_cluster.c
arch/x86/kernel/genx2apic_phys.c
arch/x86/kernel/genx2apic_uv_x.c

index 8bb1c73c55b7ded4b89f4a0f61c2d79d87ab394b..90e83a769a1c7b32ba1c25526d139fb11574233b 100644 (file)
@@ -88,6 +88,12 @@ struct genapic {
 
 extern struct genapic *apic;
 
+/*
+ * Warm reset vector default position:
+ */
+#define DEFAULT_TRAMPOLINE_PHYS_LOW            0x467
+#define DEFAULT_TRAMPOLINE_PHYS_HIGH           0x469
+
 #ifdef CONFIG_X86_32
 extern void es7000_update_genapic_to_cluster(void);
 #else
index 0a8d7860e44bd7bbe2a63ec31c1df54c6b9d005b..a327a675e473897d58f1e129126c28a2e3e4104b 100644 (file)
@@ -1,9 +1,6 @@
 #ifndef _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
 #define _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
 
-#define DEFAULT_TRAMPOLINE_PHYS_LOW (0x467)
-#define DEFAULT_TRAMPOLINE_PHYS_HIGH (0x469)
-
 static inline void wait_for_init_deassert(atomic_t *deassert)
 {
        while (!atomic_read(deassert))
index 7c648ccea514ea1786e582c508534992511c6b78..3a28d6a8c49718412973571434bde256a0acd4be 100644 (file)
@@ -224,8 +224,8 @@ struct genapic apic_flat =  {
        .send_IPI_self                  = apic_send_IPI_self,
 
        .wakeup_cpu                     = NULL,
-       .trampoline_phys_low            = 0,
-       .trampoline_phys_high           = 0,
+       .trampoline_phys_low            = DEFAULT_TRAMPOLINE_PHYS_LOW,
+       .trampoline_phys_high           = DEFAULT_TRAMPOLINE_PHYS_HIGH,
        .wait_for_init_deassert         = NULL,
        .smp_callin_clear_local_apic    = NULL,
        .store_NMI_vector               = NULL,
@@ -370,8 +370,8 @@ struct genapic apic_physflat =  {
        .send_IPI_self                  = apic_send_IPI_self,
 
        .wakeup_cpu                     = NULL,
-       .trampoline_phys_low            = 0,
-       .trampoline_phys_high           = 0,
+       .trampoline_phys_low            = DEFAULT_TRAMPOLINE_PHYS_LOW,
+       .trampoline_phys_high           = DEFAULT_TRAMPOLINE_PHYS_HIGH,
        .wait_for_init_deassert         = NULL,
        .smp_callin_clear_local_apic    = NULL,
        .store_NMI_vector               = NULL,
index 2d97726a973e3bc36367bf332125458b65062ecb..abc5ee329f21816e7e7a3eaa68733f8c9f80762e 100644 (file)
@@ -228,8 +228,8 @@ struct genapic apic_x2apic_cluster = {
        .send_IPI_self                  = x2apic_send_IPI_self,
 
        .wakeup_cpu                     = NULL,
-       .trampoline_phys_low            = 0,
-       .trampoline_phys_high           = 0,
+       .trampoline_phys_low            = DEFAULT_TRAMPOLINE_PHYS_LOW,
+       .trampoline_phys_high           = DEFAULT_TRAMPOLINE_PHYS_HIGH,
        .wait_for_init_deassert         = NULL,
        .smp_callin_clear_local_apic    = NULL,
        .store_NMI_vector               = NULL,
index 74777c27669321b09f7637c14d4ff1f4d7a3c497..dc815ef22d8c0f6de8fe84f0e8bef803742044a1 100644 (file)
@@ -214,8 +214,8 @@ struct genapic apic_x2apic_phys = {
        .send_IPI_self                  = x2apic_send_IPI_self,
 
        .wakeup_cpu                     = NULL,
-       .trampoline_phys_low            = 0,
-       .trampoline_phys_high           = 0,
+       .trampoline_phys_low            = DEFAULT_TRAMPOLINE_PHYS_LOW,
+       .trampoline_phys_high           = DEFAULT_TRAMPOLINE_PHYS_HIGH,
        .wait_for_init_deassert         = NULL,
        .smp_callin_clear_local_apic    = NULL,
        .store_NMI_vector               = NULL,
index 24b9f42db9b714ed6a8a99d0c0c4fe25156db043..b5908735ca50fad09a0d9168a40c6e1f66a64446 100644 (file)
@@ -287,8 +287,8 @@ struct genapic apic_x2apic_uv_x = {
        .send_IPI_self                  = uv_send_IPI_self,
 
        .wakeup_cpu                     = NULL,
-       .trampoline_phys_low            = 0,
-       .trampoline_phys_high           = 0,
+       .trampoline_phys_low            = DEFAULT_TRAMPOLINE_PHYS_LOW,
+       .trampoline_phys_high           = DEFAULT_TRAMPOLINE_PHYS_HIGH,
        .wait_for_init_deassert         = NULL,
        .smp_callin_clear_local_apic    = NULL,
        .store_NMI_vector               = NULL,