Commit ab6fb7c0 authored by Ingo Molnar's avatar Ingo Molnar

x86, apic: remove ->store_NMI_vector()

Impact: cleanup

It's not used by anything anymore.
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent cb81eaed
...@@ -313,7 +313,6 @@ struct genapic { ...@@ -313,7 +313,6 @@ struct genapic {
void (*wait_for_init_deassert)(atomic_t *deassert); void (*wait_for_init_deassert)(atomic_t *deassert);
void (*smp_callin_clear_local_apic)(void); void (*smp_callin_clear_local_apic)(void);
void (*store_NMI_vector)(unsigned short *high, unsigned short *low);
void (*inquire_remote_apic)(int apicid); void (*inquire_remote_apic)(int apicid);
/* apic ops */ /* apic ops */
......
...@@ -263,7 +263,6 @@ struct genapic apic_bigsmp = { ...@@ -263,7 +263,6 @@ struct genapic apic_bigsmp = {
.wait_for_init_deassert = default_wait_for_init_deassert, .wait_for_init_deassert = default_wait_for_init_deassert,
.smp_callin_clear_local_apic = NULL, .smp_callin_clear_local_apic = NULL,
.store_NMI_vector = NULL,
.inquire_remote_apic = default_inquire_remote_apic, .inquire_remote_apic = default_inquire_remote_apic,
.read = native_apic_mem_read, .read = native_apic_mem_read,
......
...@@ -746,7 +746,6 @@ struct genapic apic_es7000 = { ...@@ -746,7 +746,6 @@ struct genapic apic_es7000 = {
/* Nothing to do for most platforms, since cleared by the INIT cycle: */ /* Nothing to do for most platforms, since cleared by the INIT cycle: */
.smp_callin_clear_local_apic = NULL, .smp_callin_clear_local_apic = NULL,
.store_NMI_vector = NULL,
.inquire_remote_apic = default_inquire_remote_apic, .inquire_remote_apic = default_inquire_remote_apic,
.read = native_apic_mem_read, .read = native_apic_mem_read,
......
...@@ -227,7 +227,6 @@ struct genapic apic_flat = { ...@@ -227,7 +227,6 @@ struct genapic apic_flat = {
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
.wait_for_init_deassert = NULL, .wait_for_init_deassert = NULL,
.smp_callin_clear_local_apic = NULL, .smp_callin_clear_local_apic = NULL,
.store_NMI_vector = NULL,
.inquire_remote_apic = NULL, .inquire_remote_apic = NULL,
.read = native_apic_mem_read, .read = native_apic_mem_read,
...@@ -379,7 +378,6 @@ struct genapic apic_physflat = { ...@@ -379,7 +378,6 @@ struct genapic apic_physflat = {
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
.wait_for_init_deassert = NULL, .wait_for_init_deassert = NULL,
.smp_callin_clear_local_apic = NULL, .smp_callin_clear_local_apic = NULL,
.store_NMI_vector = NULL,
.inquire_remote_apic = NULL, .inquire_remote_apic = NULL,
.read = native_apic_mem_read, .read = native_apic_mem_read,
......
...@@ -232,7 +232,6 @@ struct genapic apic_x2apic_cluster = { ...@@ -232,7 +232,6 @@ struct genapic apic_x2apic_cluster = {
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
.wait_for_init_deassert = NULL, .wait_for_init_deassert = NULL,
.smp_callin_clear_local_apic = NULL, .smp_callin_clear_local_apic = NULL,
.store_NMI_vector = NULL,
.inquire_remote_apic = NULL, .inquire_remote_apic = NULL,
.read = native_apic_msr_read, .read = native_apic_msr_read,
......
...@@ -218,7 +218,6 @@ struct genapic apic_x2apic_phys = { ...@@ -218,7 +218,6 @@ struct genapic apic_x2apic_phys = {
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
.wait_for_init_deassert = NULL, .wait_for_init_deassert = NULL,
.smp_callin_clear_local_apic = NULL, .smp_callin_clear_local_apic = NULL,
.store_NMI_vector = NULL,
.inquire_remote_apic = NULL, .inquire_remote_apic = NULL,
.read = native_apic_msr_read, .read = native_apic_msr_read,
......
...@@ -290,7 +290,6 @@ struct genapic apic_x2apic_uv_x = { ...@@ -290,7 +290,6 @@ struct genapic apic_x2apic_uv_x = {
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH, .trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
.wait_for_init_deassert = NULL, .wait_for_init_deassert = NULL,
.smp_callin_clear_local_apic = NULL, .smp_callin_clear_local_apic = NULL,
.store_NMI_vector = NULL,
.inquire_remote_apic = NULL, .inquire_remote_apic = NULL,
.read = native_apic_msr_read, .read = native_apic_msr_read,
......
...@@ -342,16 +342,6 @@ static inline void numaq_smp_callin_clear_local_apic(void) ...@@ -342,16 +342,6 @@ static inline void numaq_smp_callin_clear_local_apic(void)
clear_local_APIC(); clear_local_APIC();
} }
static inline void
numaq_store_NMI_vector(unsigned short *high, unsigned short *low)
{
printk(KERN_ERR "Storing NMI vector\n");
*high =
*((volatile unsigned short *)phys_to_virt(NUMAQ_TRAMPOLINE_PHYS_HIGH));
*low =
*((volatile unsigned short *)phys_to_virt(NUMAQ_TRAMPOLINE_PHYS_LOW));
}
static inline const cpumask_t *numaq_target_cpus(void) static inline const cpumask_t *numaq_target_cpus(void)
{ {
return &CPU_MASK_ALL; return &CPU_MASK_ALL;
...@@ -564,7 +554,6 @@ struct genapic apic_numaq = { ...@@ -564,7 +554,6 @@ struct genapic apic_numaq = {
.wait_for_init_deassert = NULL, .wait_for_init_deassert = NULL,
.smp_callin_clear_local_apic = numaq_smp_callin_clear_local_apic, .smp_callin_clear_local_apic = numaq_smp_callin_clear_local_apic,
.store_NMI_vector = numaq_store_NMI_vector,
.inquire_remote_apic = NULL, .inquire_remote_apic = NULL,
.read = native_apic_mem_read, .read = native_apic_mem_read,
......
...@@ -131,7 +131,6 @@ struct genapic apic_default = { ...@@ -131,7 +131,6 @@ struct genapic apic_default = {
.wait_for_init_deassert = default_wait_for_init_deassert, .wait_for_init_deassert = default_wait_for_init_deassert,
.smp_callin_clear_local_apic = NULL, .smp_callin_clear_local_apic = NULL,
.store_NMI_vector = NULL,
.inquire_remote_apic = default_inquire_remote_apic, .inquire_remote_apic = default_inquire_remote_apic,
.read = native_apic_mem_read, .read = native_apic_mem_read,
......
...@@ -745,21 +745,21 @@ static void __cpuinit do_fork_idle(struct work_struct *work) ...@@ -745,21 +745,21 @@ static void __cpuinit do_fork_idle(struct work_struct *work)
complete(&c_idle->done); complete(&c_idle->done);
} }
static int __cpuinit do_boot_cpu(int apicid, int cpu)
/* /*
* NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad * NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad
* (ie clustered apic addressing mode), this is a LOGICAL apic ID. * (ie clustered apic addressing mode), this is a LOGICAL apic ID.
* Returns zero if CPU booted OK, else error code from ->wakeup_cpu. * Returns zero if CPU booted OK, else error code from ->wakeup_cpu.
*/ */
static int __cpuinit do_boot_cpu(int apicid, int cpu)
{ {
unsigned long boot_error = 0; unsigned long boot_error = 0;
int timeout;
unsigned long start_ip; unsigned long start_ip;
unsigned short nmi_high = 0, nmi_low = 0; int timeout;
struct create_idle c_idle = { struct create_idle c_idle = {
.cpu = cpu, .cpu = cpu,
.done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done), .done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done),
}; };
INIT_WORK(&c_idle.work, do_fork_idle); INIT_WORK(&c_idle.work, do_fork_idle);
alternatives_smp_switch(1); alternatives_smp_switch(1);
...@@ -824,9 +824,6 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu) ...@@ -824,9 +824,6 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu)
pr_debug("Setting warm reset code and vector.\n"); pr_debug("Setting warm reset code and vector.\n");
if (apic->store_NMI_vector)
apic->store_NMI_vector(&nmi_high, &nmi_low);
smpboot_setup_warm_reset_vector(start_ip); smpboot_setup_warm_reset_vector(start_ip);
/* /*
* Be paranoid about clearing APIC errors. * Be paranoid about clearing APIC errors.
......
...@@ -590,7 +590,6 @@ struct genapic apic_summit = { ...@@ -590,7 +590,6 @@ struct genapic apic_summit = {
.wait_for_init_deassert = default_wait_for_init_deassert, .wait_for_init_deassert = default_wait_for_init_deassert,
.smp_callin_clear_local_apic = NULL, .smp_callin_clear_local_apic = NULL,
.store_NMI_vector = NULL,
.inquire_remote_apic = default_inquire_remote_apic, .inquire_remote_apic = default_inquire_remote_apic,
.read = native_apic_mem_read, .read = native_apic_mem_read,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment