aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-28 10:15:16 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-28 17:20:32 -0500
commitabfa584c8df8b691cf18f51c7d4af27e5b32be4a (patch)
tree064743591bf01c4a85fa6f55f770e9ac8555ef24 /arch
parent6f177c01db6b865181fbc6c948381b290ee09718 (diff)
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>
Diffstat (limited to 'arch')
-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 {
88 88
89extern struct genapic *apic; 89extern struct genapic *apic;
90 90
91/*
92 * Warm reset vector default position:
93 */
94#define DEFAULT_TRAMPOLINE_PHYS_LOW 0x467
95#define DEFAULT_TRAMPOLINE_PHYS_HIGH 0x469
96
91#ifdef CONFIG_X86_32 97#ifdef CONFIG_X86_32
92extern void es7000_update_genapic_to_cluster(void); 98extern void es7000_update_genapic_to_cluster(void);
93#else 99#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 @@
1#ifndef _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H 1#ifndef _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
2#define _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H 2#define _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
3 3
4#define DEFAULT_TRAMPOLINE_PHYS_LOW (0x467)
5#define DEFAULT_TRAMPOLINE_PHYS_HIGH (0x469)
6
7static inline void wait_for_init_deassert(atomic_t *deassert) 4static inline void wait_for_init_deassert(atomic_t *deassert)
8{ 5{
9 while (!atomic_read(deassert)) 6 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 = {
224 .send_IPI_self = apic_send_IPI_self, 224 .send_IPI_self = apic_send_IPI_self,
225 225
226 .wakeup_cpu = NULL, 226 .wakeup_cpu = NULL,
227 .trampoline_phys_low = 0, 227 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
228 .trampoline_phys_high = 0, 228 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
229 .wait_for_init_deassert = NULL, 229 .wait_for_init_deassert = NULL,
230 .smp_callin_clear_local_apic = NULL, 230 .smp_callin_clear_local_apic = NULL,
231 .store_NMI_vector = NULL, 231 .store_NMI_vector = NULL,
@@ -370,8 +370,8 @@ struct genapic apic_physflat = {
370 .send_IPI_self = apic_send_IPI_self, 370 .send_IPI_self = apic_send_IPI_self,
371 371
372 .wakeup_cpu = NULL, 372 .wakeup_cpu = NULL,
373 .trampoline_phys_low = 0, 373 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
374 .trampoline_phys_high = 0, 374 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
375 .wait_for_init_deassert = NULL, 375 .wait_for_init_deassert = NULL,
376 .smp_callin_clear_local_apic = NULL, 376 .smp_callin_clear_local_apic = NULL,
377 .store_NMI_vector = NULL, 377 .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 = {
228 .send_IPI_self = x2apic_send_IPI_self, 228 .send_IPI_self = x2apic_send_IPI_self,
229 229
230 .wakeup_cpu = NULL, 230 .wakeup_cpu = NULL,
231 .trampoline_phys_low = 0, 231 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
232 .trampoline_phys_high = 0, 232 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
233 .wait_for_init_deassert = NULL, 233 .wait_for_init_deassert = NULL,
234 .smp_callin_clear_local_apic = NULL, 234 .smp_callin_clear_local_apic = NULL,
235 .store_NMI_vector = NULL, 235 .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 = {
214 .send_IPI_self = x2apic_send_IPI_self, 214 .send_IPI_self = x2apic_send_IPI_self,
215 215
216 .wakeup_cpu = NULL, 216 .wakeup_cpu = NULL,
217 .trampoline_phys_low = 0, 217 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
218 .trampoline_phys_high = 0, 218 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
219 .wait_for_init_deassert = NULL, 219 .wait_for_init_deassert = NULL,
220 .smp_callin_clear_local_apic = NULL, 220 .smp_callin_clear_local_apic = NULL,
221 .store_NMI_vector = NULL, 221 .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 = {
287 .send_IPI_self = uv_send_IPI_self, 287 .send_IPI_self = uv_send_IPI_self,
288 288
289 .wakeup_cpu = NULL, 289 .wakeup_cpu = NULL,
290 .trampoline_phys_low = 0, 290 .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
291 .trampoline_phys_high = 0, 291 .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
292 .wait_for_init_deassert = NULL, 292 .wait_for_init_deassert = NULL,
293 .smp_callin_clear_local_apic = NULL, 293 .smp_callin_clear_local_apic = NULL,
294 .store_NMI_vector = NULL, 294 .store_NMI_vector = NULL,