diff options
| -rw-r--r-- | arch/x86/include/asm/apic.h | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/bigsmp_32.c | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/es7000_32.c | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/genapic_flat_64.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/genx2apic_cluster.c | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/genx2apic_phys.c | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/genx2apic_uv_x.c | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/numaq_32.c | 11 | ||||
| -rw-r--r-- | arch/x86/kernel/probe_32.c | 1 | ||||
| -rw-r--r-- | arch/x86/kernel/smpboot.c | 13 | ||||
| -rw-r--r-- | arch/x86/kernel/summit_32.c | 1 |
11 files changed, 5 insertions, 29 deletions
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index 2cdd19e4536..122d8eda275 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h | |||
| @@ -313,7 +313,6 @@ struct genapic { | |||
| 313 | 313 | ||
| 314 | void (*wait_for_init_deassert)(atomic_t *deassert); | 314 | void (*wait_for_init_deassert)(atomic_t *deassert); |
| 315 | void (*smp_callin_clear_local_apic)(void); | 315 | void (*smp_callin_clear_local_apic)(void); |
| 316 | void (*store_NMI_vector)(unsigned short *high, unsigned short *low); | ||
| 317 | void (*inquire_remote_apic)(int apicid); | 316 | void (*inquire_remote_apic)(int apicid); |
| 318 | 317 | ||
| 319 | /* apic ops */ | 318 | /* apic ops */ |
diff --git a/arch/x86/kernel/bigsmp_32.c b/arch/x86/kernel/bigsmp_32.c index 0de9eed7c60..17c25bc26a5 100644 --- a/arch/x86/kernel/bigsmp_32.c +++ b/arch/x86/kernel/bigsmp_32.c | |||
| @@ -263,7 +263,6 @@ struct genapic apic_bigsmp = { | |||
| 263 | .wait_for_init_deassert = default_wait_for_init_deassert, | 263 | .wait_for_init_deassert = default_wait_for_init_deassert, |
| 264 | 264 | ||
| 265 | .smp_callin_clear_local_apic = NULL, | 265 | .smp_callin_clear_local_apic = NULL, |
| 266 | .store_NMI_vector = NULL, | ||
| 267 | .inquire_remote_apic = default_inquire_remote_apic, | 266 | .inquire_remote_apic = default_inquire_remote_apic, |
| 268 | 267 | ||
| 269 | .read = native_apic_mem_read, | 268 | .read = native_apic_mem_read, |
diff --git a/arch/x86/kernel/es7000_32.c b/arch/x86/kernel/es7000_32.c index 3519f8cab70..1d6e99a8edc 100644 --- a/arch/x86/kernel/es7000_32.c +++ b/arch/x86/kernel/es7000_32.c | |||
| @@ -746,7 +746,6 @@ struct genapic apic_es7000 = { | |||
| 746 | 746 | ||
| 747 | /* Nothing to do for most platforms, since cleared by the INIT cycle: */ | 747 | /* Nothing to do for most platforms, since cleared by the INIT cycle: */ |
| 748 | .smp_callin_clear_local_apic = NULL, | 748 | .smp_callin_clear_local_apic = NULL, |
| 749 | .store_NMI_vector = NULL, | ||
| 750 | .inquire_remote_apic = default_inquire_remote_apic, | 749 | .inquire_remote_apic = default_inquire_remote_apic, |
| 751 | 750 | ||
| 752 | .read = native_apic_mem_read, | 751 | .read = native_apic_mem_read, |
diff --git a/arch/x86/kernel/genapic_flat_64.c b/arch/x86/kernel/genapic_flat_64.c index a7d84763648..27b81208009 100644 --- a/arch/x86/kernel/genapic_flat_64.c +++ b/arch/x86/kernel/genapic_flat_64.c | |||
| @@ -227,7 +227,6 @@ struct genapic apic_flat = { | |||
| 227 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | 227 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, |
| 228 | .wait_for_init_deassert = NULL, | 228 | .wait_for_init_deassert = NULL, |
| 229 | .smp_callin_clear_local_apic = NULL, | 229 | .smp_callin_clear_local_apic = NULL, |
| 230 | .store_NMI_vector = NULL, | ||
| 231 | .inquire_remote_apic = NULL, | 230 | .inquire_remote_apic = NULL, |
| 232 | 231 | ||
| 233 | .read = native_apic_mem_read, | 232 | .read = native_apic_mem_read, |
| @@ -379,7 +378,6 @@ struct genapic apic_physflat = { | |||
| 379 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | 378 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, |
| 380 | .wait_for_init_deassert = NULL, | 379 | .wait_for_init_deassert = NULL, |
| 381 | .smp_callin_clear_local_apic = NULL, | 380 | .smp_callin_clear_local_apic = NULL, |
| 382 | .store_NMI_vector = NULL, | ||
| 383 | .inquire_remote_apic = NULL, | 381 | .inquire_remote_apic = NULL, |
| 384 | 382 | ||
| 385 | .read = native_apic_mem_read, | 383 | .read = native_apic_mem_read, |
diff --git a/arch/x86/kernel/genx2apic_cluster.c b/arch/x86/kernel/genx2apic_cluster.c index f5e02cffa26..b9ef0091c4d 100644 --- a/arch/x86/kernel/genx2apic_cluster.c +++ b/arch/x86/kernel/genx2apic_cluster.c | |||
| @@ -232,7 +232,6 @@ struct genapic apic_x2apic_cluster = { | |||
| 232 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | 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, | ||
| 236 | .inquire_remote_apic = NULL, | 235 | .inquire_remote_apic = NULL, |
| 237 | 236 | ||
| 238 | .read = native_apic_msr_read, | 237 | .read = native_apic_msr_read, |
diff --git a/arch/x86/kernel/genx2apic_phys.c b/arch/x86/kernel/genx2apic_phys.c index 11eb4cb7ca3..bb752015776 100644 --- a/arch/x86/kernel/genx2apic_phys.c +++ b/arch/x86/kernel/genx2apic_phys.c | |||
| @@ -218,7 +218,6 @@ struct genapic apic_x2apic_phys = { | |||
| 218 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | 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, | ||
| 222 | .inquire_remote_apic = NULL, | 221 | .inquire_remote_apic = NULL, |
| 223 | 222 | ||
| 224 | .read = native_apic_msr_read, | 223 | .read = native_apic_msr_read, |
diff --git a/arch/x86/kernel/genx2apic_uv_x.c b/arch/x86/kernel/genx2apic_uv_x.c index c1746a198bd..dcb8c14287d 100644 --- a/arch/x86/kernel/genx2apic_uv_x.c +++ b/arch/x86/kernel/genx2apic_uv_x.c | |||
| @@ -290,7 +290,6 @@ struct genapic apic_x2apic_uv_x = { | |||
| 290 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, | 290 | .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, |
| 291 | .wait_for_init_deassert = NULL, | 291 | .wait_for_init_deassert = NULL, |
| 292 | .smp_callin_clear_local_apic = NULL, | 292 | .smp_callin_clear_local_apic = NULL, |
| 293 | .store_NMI_vector = NULL, | ||
| 294 | .inquire_remote_apic = NULL, | 293 | .inquire_remote_apic = NULL, |
| 295 | 294 | ||
| 296 | .read = native_apic_msr_read, | 295 | .read = native_apic_msr_read, |
diff --git a/arch/x86/kernel/numaq_32.c b/arch/x86/kernel/numaq_32.c index 62f9274a2ed..a709de87819 100644 --- a/arch/x86/kernel/numaq_32.c +++ b/arch/x86/kernel/numaq_32.c | |||
| @@ -342,16 +342,6 @@ static inline void numaq_smp_callin_clear_local_apic(void) | |||
| 342 | clear_local_APIC(); | 342 | clear_local_APIC(); |
| 343 | } | 343 | } |
| 344 | 344 | ||
| 345 | static inline void | ||
| 346 | numaq_store_NMI_vector(unsigned short *high, unsigned short *low) | ||
| 347 | { | ||
| 348 | printk(KERN_ERR "Storing NMI vector\n"); | ||
| 349 | *high = | ||
| 350 | *((volatile unsigned short *)phys_to_virt(NUMAQ_TRAMPOLINE_PHYS_HIGH)); | ||
| 351 | *low = | ||
| 352 | *((volatile unsigned short *)phys_to_virt(NUMAQ_TRAMPOLINE_PHYS_LOW)); | ||
| 353 | } | ||
| 354 | |||
| 355 | static inline const cpumask_t *numaq_target_cpus(void) | 345 | static inline const cpumask_t *numaq_target_cpus(void) |
| 356 | { | 346 | { |
| 357 | return &CPU_MASK_ALL; | 347 | return &CPU_MASK_ALL; |
| @@ -564,7 +554,6 @@ struct genapic apic_numaq = { | |||
| 564 | .wait_for_init_deassert = NULL, | 554 | .wait_for_init_deassert = NULL, |
| 565 | 555 | ||
| 566 | .smp_callin_clear_local_apic = numaq_smp_callin_clear_local_apic, | 556 | .smp_callin_clear_local_apic = numaq_smp_callin_clear_local_apic, |
| 567 | .store_NMI_vector = numaq_store_NMI_vector, | ||
| 568 | .inquire_remote_apic = NULL, | 557 | .inquire_remote_apic = NULL, |
| 569 | 558 | ||
| 570 | .read = native_apic_mem_read, | 559 | .read = native_apic_mem_read, |
diff --git a/arch/x86/kernel/probe_32.c b/arch/x86/kernel/probe_32.c index fd1352ac909..5914ffb6e40 100644 --- a/arch/x86/kernel/probe_32.c +++ b/arch/x86/kernel/probe_32.c | |||
| @@ -131,7 +131,6 @@ struct genapic apic_default = { | |||
| 131 | .wait_for_init_deassert = default_wait_for_init_deassert, | 131 | .wait_for_init_deassert = default_wait_for_init_deassert, |
| 132 | 132 | ||
| 133 | .smp_callin_clear_local_apic = NULL, | 133 | .smp_callin_clear_local_apic = NULL, |
| 134 | .store_NMI_vector = NULL, | ||
| 135 | .inquire_remote_apic = default_inquire_remote_apic, | 134 | .inquire_remote_apic = default_inquire_remote_apic, |
| 136 | 135 | ||
| 137 | .read = native_apic_mem_read, | 136 | .read = native_apic_mem_read, |
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 09e73876a44..9ce666387f3 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
| @@ -745,21 +745,21 @@ static void __cpuinit do_fork_idle(struct work_struct *work) | |||
| 745 | complete(&c_idle->done); | 745 | complete(&c_idle->done); |
| 746 | } | 746 | } |
| 747 | 747 | ||
| 748 | static int __cpuinit do_boot_cpu(int apicid, int cpu) | ||
| 749 | /* | 748 | /* |
| 750 | * NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad | 749 | * NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad |
| 751 | * (ie clustered apic addressing mode), this is a LOGICAL apic ID. | 750 | * (ie clustered apic addressing mode), this is a LOGICAL apic ID. |
| 752 | * Returns zero if CPU booted OK, else error code from ->wakeup_cpu. | 751 | * Returns zero if CPU booted OK, else error code from ->wakeup_cpu. |
| 753 | */ | 752 | */ |
| 753 | static int __cpuinit do_boot_cpu(int apicid, int cpu) | ||
| 754 | { | 754 | { |
| 755 | unsigned long boot_error = 0; | 755 | unsigned long boot_error = 0; |
| 756 | int timeout; | ||
| 757 | unsigned long start_ip; | 756 | unsigned long start_ip; |
| 758 | unsigned short nmi_high = 0, nmi_low = 0; | 757 | int timeout; |
| 759 | struct create_idle c_idle = { | 758 | struct create_idle c_idle = { |
| 760 | .cpu = cpu, | 759 | .cpu = cpu, |
| 761 | .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done), | 760 | .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done), |
| 762 | }; | 761 | }; |
| 762 | |||
| 763 | INIT_WORK(&c_idle.work, do_fork_idle); | 763 | INIT_WORK(&c_idle.work, do_fork_idle); |
| 764 | 764 | ||
| 765 | alternatives_smp_switch(1); | 765 | alternatives_smp_switch(1); |
| @@ -824,9 +824,6 @@ do_rest: | |||
| 824 | 824 | ||
| 825 | pr_debug("Setting warm reset code and vector.\n"); | 825 | pr_debug("Setting warm reset code and vector.\n"); |
| 826 | 826 | ||
| 827 | if (apic->store_NMI_vector) | ||
| 828 | apic->store_NMI_vector(&nmi_high, &nmi_low); | ||
| 829 | |||
| 830 | smpboot_setup_warm_reset_vector(start_ip); | 827 | smpboot_setup_warm_reset_vector(start_ip); |
| 831 | /* | 828 | /* |
| 832 | * Be paranoid about clearing APIC errors. | 829 | * Be paranoid about clearing APIC errors. |
diff --git a/arch/x86/kernel/summit_32.c b/arch/x86/kernel/summit_32.c index c4690349a54..8f1a11b072a 100644 --- a/arch/x86/kernel/summit_32.c +++ b/arch/x86/kernel/summit_32.c | |||
| @@ -590,7 +590,6 @@ struct genapic apic_summit = { | |||
| 590 | .wait_for_init_deassert = default_wait_for_init_deassert, | 590 | .wait_for_init_deassert = default_wait_for_init_deassert, |
| 591 | 591 | ||
| 592 | .smp_callin_clear_local_apic = NULL, | 592 | .smp_callin_clear_local_apic = NULL, |
| 593 | .store_NMI_vector = NULL, | ||
| 594 | .inquire_remote_apic = default_inquire_remote_apic, | 593 | .inquire_remote_apic = default_inquire_remote_apic, |
| 595 | 594 | ||
| 596 | .read = native_apic_mem_read, | 595 | .read = native_apic_mem_read, |
