Преглед изворни кода

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>
Ingo Molnar пре 16 година
родитељ
комит
abfa584c8d

+ 6 - 0
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

+ 0 - 3
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))

+ 4 - 4
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,

+ 2 - 2
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,

+ 2 - 2
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,

+ 2 - 2
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,