x86, apic: remove ->store_NMI_vector()
Impact: cleanup It's not used by anything anymore. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -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 = {
|
|||||||
.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 = {
|
|||||||
|
|
||||||
/* 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 = {
|
|||||||
.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 = {
|
|||||||
.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 = {
|
|||||||
.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 = {
|
|||||||
.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 = {
|
|||||||
.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)
|
|||||||
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 = {
|
|||||||
.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 = {
|
|||||||
.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)
|
|||||||
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 @@ do_rest:
|
|||||||
|
|
||||||
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 = {
|
|||||||
.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,
|
||||||
|
Reference in New Issue
Block a user