summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-28 16:15:16 +0100
committerIngo Molnar <mingo@elte.hu>2009-01-28 23:20:32 +0100
commitabfa584c8df8b691cf18f51c7d4af27e5b32be4a (patch)
tree064743591bf01c4a85fa6f55f770e9ac8555ef24
parentx86, smp: clean up ->trampoline_phys_low/high handling (diff)
downloadlinux-abfa584c8df8b691cf18f51c7d4af27e5b32be4a.tar.xz
linux-abfa584c8df8b691cf18f51c7d4af27e5b32be4a.zip
x86: set ->trampoline_phys_low/high on 64-bit too
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>
-rw-r--r--arch/x86/include/asm/genapic.h6
-rw-r--r--arch/x86/include/asm/mach-default/mach_wakecpu.h3
-rw-r--r--arch/x86/kernel/genapic_flat_64.c8
-rw-r--r--arch/x86/kernel/genx2apic_cluster.c4
-rw-r--r--arch/x86/kernel/genx2apic_phys.c4
-rw-r--r--arch/x86/kernel/genx2apic_uv_x.c4
6 files changed, 16 insertions, 13 deletions
diff --git a/arch/x86/include/asm/genapic.h b/arch/x86/include/asm/genapic.h
index 8bb1c73c55b7..90e83a769a1c 100644
--- a/arch/x86/include/asm/genapic.h
+++ b/arch/x86/include/asm/genapic.h
@@ -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
diff --git a/arch/x86/include/asm/mach-default/mach_wakecpu.h b/arch/x86/include/asm/mach-default/mach_wakecpu.h
index 0a8d7860e44b..a327a675e473 100644
--- a/arch/x86/include/asm/mach-default/mach_wakecpu.h
+++ b/arch/x86/include/asm/mach-default/mach_wakecpu.h
@@ -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))
diff --git a/arch/x86/kernel/genapic_flat_64.c b/arch/x86/kernel/genapic_flat_64.c
index 7c648ccea514..3a28d6a8c497 100644
--- a/arch/x86/kernel/genapic_flat_64.c
+++ b/arch/x86/kernel/genapic_flat_64.c
@@ -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,
diff --git a/arch/x86/kernel/genx2apic_cluster.c b/arch/x86/kernel/genx2apic_cluster.c
index 2d97726a973e..abc5ee329f21 100644
--- a/arch/x86/kernel/genx2apic_cluster.c
+++ b/arch/x86/kernel/genx2apic_cluster.c
@@ -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,
diff --git a/arch/x86/kernel/genx2apic_phys.c b/arch/x86/kernel/genx2apic_phys.c
index 74777c276693..dc815ef22d8c 100644
--- a/arch/x86/kernel/genx2apic_phys.c
+++ b/arch/x86/kernel/genx2apic_phys.c
@@ -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,
diff --git a/arch/x86/kernel/genx2apic_uv_x.c b/arch/x86/kernel/genx2apic_uv_x.c
index 24b9f42db9b7..b5908735ca50 100644
--- a/arch/x86/kernel/genx2apic_uv_x.c
+++ b/arch/x86/kernel/genx2apic_uv_x.c
@@ -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,