diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-01-28 10:15:16 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-28 17:20:32 -0500 |
commit | abfa584c8df8b691cf18f51c7d4af27e5b32be4a (patch) | |
tree | 064743591bf01c4a85fa6f55f770e9ac8555ef24 /arch | |
parent | 6f177c01db6b865181fbc6c948381b290ee09718 (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.h | 6 | ||||
-rw-r--r-- | arch/x86/include/asm/mach-default/mach_wakecpu.h | 3 | ||||
-rw-r--r-- | arch/x86/kernel/genapic_flat_64.c | 8 | ||||
-rw-r--r-- | arch/x86/kernel/genx2apic_cluster.c | 4 | ||||
-rw-r--r-- | arch/x86/kernel/genx2apic_phys.c | 4 | ||||
-rw-r--r-- | arch/x86/kernel/genx2apic_uv_x.c | 4 |
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 | ||
89 | extern struct genapic *apic; | 89 | extern 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 |
92 | extern void es7000_update_genapic_to_cluster(void); | 98 | extern 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 | |||
7 | static inline void wait_for_init_deassert(atomic_t *deassert) | 4 | static 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, |