diff options
| -rw-r--r-- | arch/x86/include/asm/apic.h | 9 | ||||
| -rw-r--r-- | arch/x86/include/asm/smpboot_hooks.h | 10 | ||||
| -rw-r--r-- | arch/x86/kernel/apic/apic_flat_64.c | 4 | ||||
| -rw-r--r-- | arch/x86/kernel/apic/apic_noop.c | 4 | ||||
| -rw-r--r-- | arch/x86/kernel/apic/apic_numachip.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/apic/bigsmp_32.c | 3 | ||||
| -rw-r--r-- | arch/x86/kernel/apic/probe_32.c | 3 | ||||
| -rw-r--r-- | arch/x86/kernel/apic/x2apic_cluster.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/apic/x2apic_phys.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/apic/x2apic_uv_x.c | 2 |
10 files changed, 8 insertions, 33 deletions
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index 067c2f83e329..2201c262b00c 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h | |||
| @@ -335,9 +335,6 @@ struct apic { | |||
| 335 | /* wakeup_secondary_cpu */ | 335 | /* wakeup_secondary_cpu */ |
| 336 | int (*wakeup_secondary_cpu)(int apicid, unsigned long start_eip); | 336 | int (*wakeup_secondary_cpu)(int apicid, unsigned long start_eip); |
| 337 | 337 | ||
| 338 | int trampoline_phys_low; | ||
| 339 | int trampoline_phys_high; | ||
| 340 | |||
| 341 | bool wait_for_init_deassert; | 338 | bool wait_for_init_deassert; |
| 342 | void (*smp_callin_clear_local_apic)(void); | 339 | void (*smp_callin_clear_local_apic)(void); |
| 343 | void (*inquire_remote_apic)(int apicid); | 340 | void (*inquire_remote_apic)(int apicid); |
| @@ -480,10 +477,10 @@ static inline unsigned default_get_apic_id(unsigned long x) | |||
| 480 | } | 477 | } |
| 481 | 478 | ||
| 482 | /* | 479 | /* |
| 483 | * Warm reset vector default position: | 480 | * Warm reset vector position: |
| 484 | */ | 481 | */ |
| 485 | #define DEFAULT_TRAMPOLINE_PHYS_LOW 0x467 | 482 | #define TRAMPOLINE_PHYS_LOW 0x467 |
| 486 | #define DEFAULT_TRAMPOLINE_PHYS_HIGH 0x469 | 483 | #define TRAMPOLINE_PHYS_HIGH 0x469 |
| 487 | 484 | ||
| 488 | #ifdef CONFIG_X86_64 | 485 | #ifdef CONFIG_X86_64 |
| 489 | extern void apic_send_IPI_self(int vector); | 486 | extern void apic_send_IPI_self(int vector); |
diff --git a/arch/x86/include/asm/smpboot_hooks.h b/arch/x86/include/asm/smpboot_hooks.h index 49adfd7bb4a4..0da7409f0bec 100644 --- a/arch/x86/include/asm/smpboot_hooks.h +++ b/arch/x86/include/asm/smpboot_hooks.h | |||
| @@ -17,11 +17,11 @@ static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip) | |||
| 17 | spin_unlock_irqrestore(&rtc_lock, flags); | 17 | spin_unlock_irqrestore(&rtc_lock, flags); |
| 18 | local_flush_tlb(); | 18 | local_flush_tlb(); |
| 19 | pr_debug("1.\n"); | 19 | pr_debug("1.\n"); |
| 20 | *((volatile unsigned short *)phys_to_virt(apic->trampoline_phys_high)) = | 20 | *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH)) = |
| 21 | start_eip >> 4; | 21 | start_eip >> 4; |
| 22 | pr_debug("2.\n"); | 22 | pr_debug("2.\n"); |
| 23 | *((volatile unsigned short *)phys_to_virt(apic->trampoline_phys_low)) = | 23 | *((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) = |
| 24 | start_eip & 0xf; | 24 | start_eip & 0xf; |
| 25 | pr_debug("3.\n"); | 25 | pr_debug("3.\n"); |
| 26 | } | 26 | } |
| 27 | 27 | ||
| @@ -42,7 +42,7 @@ static inline void smpboot_restore_warm_reset_vector(void) | |||
| 42 | CMOS_WRITE(0, 0xf); | 42 | CMOS_WRITE(0, 0xf); |
| 43 | spin_unlock_irqrestore(&rtc_lock, flags); | 43 | spin_unlock_irqrestore(&rtc_lock, flags); |
| 44 | 44 | ||
| 45 | *((volatile u32 *)phys_to_virt(apic->trampoline_phys_low)) = 0; | 45 | *((volatile u32 *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) = 0; |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | static inline void __init smpboot_setup_io_apic(void) | 48 | static inline void __init smpboot_setup_io_apic(void) |
diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c index 7c1b29479513..7d56b65f3ddf 100644 --- a/arch/x86/kernel/apic/apic_flat_64.c +++ b/arch/x86/kernel/apic/apic_flat_64.c | |||
| @@ -196,8 +196,6 @@ static struct apic apic_flat = { | |||
| 196 | .send_IPI_all = flat_send_IPI_all, | 196 | .send_IPI_all = flat_send_IPI_all, |
| 197 | .send_IPI_self = apic_send_IPI_self, | 197 | .send_IPI_self = apic_send_IPI_self, |
| 198 | 198 | ||
| 199 | .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, | ||
| 200 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | ||
| 201 | .wait_for_init_deassert = false, | 199 | .wait_for_init_deassert = false, |
| 202 | .smp_callin_clear_local_apic = NULL, | 200 | .smp_callin_clear_local_apic = NULL, |
| 203 | .inquire_remote_apic = default_inquire_remote_apic, | 201 | .inquire_remote_apic = default_inquire_remote_apic, |
| @@ -312,8 +310,6 @@ static struct apic apic_physflat = { | |||
| 312 | .send_IPI_all = physflat_send_IPI_all, | 310 | .send_IPI_all = physflat_send_IPI_all, |
| 313 | .send_IPI_self = apic_send_IPI_self, | 311 | .send_IPI_self = apic_send_IPI_self, |
| 314 | 312 | ||
| 315 | .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, | ||
| 316 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | ||
| 317 | .wait_for_init_deassert = false, | 313 | .wait_for_init_deassert = false, |
| 318 | .smp_callin_clear_local_apic = NULL, | 314 | .smp_callin_clear_local_apic = NULL, |
| 319 | .inquire_remote_apic = default_inquire_remote_apic, | 315 | .inquire_remote_apic = default_inquire_remote_apic, |
diff --git a/arch/x86/kernel/apic/apic_noop.c b/arch/x86/kernel/apic/apic_noop.c index 8c7c98249c20..c638efa6ad67 100644 --- a/arch/x86/kernel/apic/apic_noop.c +++ b/arch/x86/kernel/apic/apic_noop.c | |||
| @@ -168,10 +168,6 @@ struct apic apic_noop = { | |||
| 168 | 168 | ||
| 169 | .wakeup_secondary_cpu = noop_wakeup_secondary_cpu, | 169 | .wakeup_secondary_cpu = noop_wakeup_secondary_cpu, |
| 170 | 170 | ||
| 171 | /* should be safe */ | ||
| 172 | .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, | ||
| 173 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | ||
| 174 | |||
| 175 | .wait_for_init_deassert = false, | 171 | .wait_for_init_deassert = false, |
| 176 | .smp_callin_clear_local_apic = NULL, | 172 | .smp_callin_clear_local_apic = NULL, |
| 177 | .inquire_remote_apic = NULL, | 173 | .inquire_remote_apic = NULL, |
diff --git a/arch/x86/kernel/apic/apic_numachip.c b/arch/x86/kernel/apic/apic_numachip.c index a5b45df8bc88..c32f8827e3a4 100644 --- a/arch/x86/kernel/apic/apic_numachip.c +++ b/arch/x86/kernel/apic/apic_numachip.c | |||
| @@ -246,8 +246,6 @@ static const struct apic apic_numachip __refconst = { | |||
| 246 | .send_IPI_self = numachip_send_IPI_self, | 246 | .send_IPI_self = numachip_send_IPI_self, |
| 247 | 247 | ||
| 248 | .wakeup_secondary_cpu = numachip_wakeup_secondary, | 248 | .wakeup_secondary_cpu = numachip_wakeup_secondary, |
| 249 | .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, | ||
| 250 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | ||
| 251 | .wait_for_init_deassert = false, | 249 | .wait_for_init_deassert = false, |
| 252 | .smp_callin_clear_local_apic = NULL, | 250 | .smp_callin_clear_local_apic = NULL, |
| 253 | .inquire_remote_apic = NULL, /* REMRD not supported */ | 251 | .inquire_remote_apic = NULL, /* REMRD not supported */ |
diff --git a/arch/x86/kernel/apic/bigsmp_32.c b/arch/x86/kernel/apic/bigsmp_32.c index e4840aa7a255..74ffd3eb681e 100644 --- a/arch/x86/kernel/apic/bigsmp_32.c +++ b/arch/x86/kernel/apic/bigsmp_32.c | |||
| @@ -196,9 +196,6 @@ static struct apic apic_bigsmp = { | |||
| 196 | .send_IPI_all = bigsmp_send_IPI_all, | 196 | .send_IPI_all = bigsmp_send_IPI_all, |
| 197 | .send_IPI_self = default_send_IPI_self, | 197 | .send_IPI_self = default_send_IPI_self, |
| 198 | 198 | ||
| 199 | .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, | ||
| 200 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | ||
| 201 | |||
| 202 | .wait_for_init_deassert = true, | 199 | .wait_for_init_deassert = true, |
| 203 | .smp_callin_clear_local_apic = NULL, | 200 | .smp_callin_clear_local_apic = NULL, |
| 204 | .inquire_remote_apic = default_inquire_remote_apic, | 201 | .inquire_remote_apic = default_inquire_remote_apic, |
diff --git a/arch/x86/kernel/apic/probe_32.c b/arch/x86/kernel/apic/probe_32.c index cceb352c968c..64248c7149e3 100644 --- a/arch/x86/kernel/apic/probe_32.c +++ b/arch/x86/kernel/apic/probe_32.c | |||
| @@ -116,9 +116,6 @@ static struct apic apic_default = { | |||
| 116 | .send_IPI_all = default_send_IPI_all, | 116 | .send_IPI_all = default_send_IPI_all, |
| 117 | .send_IPI_self = default_send_IPI_self, | 117 | .send_IPI_self = default_send_IPI_self, |
| 118 | 118 | ||
| 119 | .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, | ||
| 120 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | ||
| 121 | |||
| 122 | .wait_for_init_deassert = true, | 119 | .wait_for_init_deassert = true, |
| 123 | .smp_callin_clear_local_apic = NULL, | 120 | .smp_callin_clear_local_apic = NULL, |
| 124 | .inquire_remote_apic = default_inquire_remote_apic, | 121 | .inquire_remote_apic = default_inquire_remote_apic, |
diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c index e66766bf1641..8b3200cc57e3 100644 --- a/arch/x86/kernel/apic/x2apic_cluster.c +++ b/arch/x86/kernel/apic/x2apic_cluster.c | |||
| @@ -277,8 +277,6 @@ static struct apic apic_x2apic_cluster = { | |||
| 277 | .send_IPI_all = x2apic_send_IPI_all, | 277 | .send_IPI_all = x2apic_send_IPI_all, |
| 278 | .send_IPI_self = x2apic_send_IPI_self, | 278 | .send_IPI_self = x2apic_send_IPI_self, |
| 279 | 279 | ||
| 280 | .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, | ||
| 281 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | ||
| 282 | .wait_for_init_deassert = false, | 280 | .wait_for_init_deassert = false, |
| 283 | .smp_callin_clear_local_apic = NULL, | 281 | .smp_callin_clear_local_apic = NULL, |
| 284 | .inquire_remote_apic = NULL, | 282 | .inquire_remote_apic = NULL, |
diff --git a/arch/x86/kernel/apic/x2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c index 6d600ebf6c12..14c189151910 100644 --- a/arch/x86/kernel/apic/x2apic_phys.c +++ b/arch/x86/kernel/apic/x2apic_phys.c | |||
| @@ -131,8 +131,6 @@ static struct apic apic_x2apic_phys = { | |||
| 131 | .send_IPI_all = x2apic_send_IPI_all, | 131 | .send_IPI_all = x2apic_send_IPI_all, |
| 132 | .send_IPI_self = x2apic_send_IPI_self, | 132 | .send_IPI_self = x2apic_send_IPI_self, |
| 133 | 133 | ||
| 134 | .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, | ||
| 135 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | ||
| 136 | .wait_for_init_deassert = false, | 134 | .wait_for_init_deassert = false, |
| 137 | .smp_callin_clear_local_apic = NULL, | 135 | .smp_callin_clear_local_apic = NULL, |
| 138 | .inquire_remote_apic = NULL, | 136 | .inquire_remote_apic = NULL, |
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c index 293b41df54ef..58f098880058 100644 --- a/arch/x86/kernel/apic/x2apic_uv_x.c +++ b/arch/x86/kernel/apic/x2apic_uv_x.c | |||
| @@ -394,8 +394,6 @@ static struct apic __refdata apic_x2apic_uv_x = { | |||
| 394 | .send_IPI_self = uv_send_IPI_self, | 394 | .send_IPI_self = uv_send_IPI_self, |
| 395 | 395 | ||
| 396 | .wakeup_secondary_cpu = uv_wakeup_secondary, | 396 | .wakeup_secondary_cpu = uv_wakeup_secondary, |
| 397 | .trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW, | ||
| 398 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | ||
| 399 | .wait_for_init_deassert = false, | 397 | .wait_for_init_deassert = false, |
| 400 | .smp_callin_clear_local_apic = NULL, | 398 | .smp_callin_clear_local_apic = NULL, |
| 401 | .inquire_remote_apic = NULL, | 399 | .inquire_remote_apic = NULL, |
