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:
Родитель
cb81eaedf1
Коммит
ab6fb7c0b0
|
@ -313,7 +313,6 @@ struct genapic {
|
|||
|
||||
void (*wait_for_init_deassert)(atomic_t *deassert);
|
||||
void (*smp_callin_clear_local_apic)(void);
|
||||
void (*store_NMI_vector)(unsigned short *high, unsigned short *low);
|
||||
void (*inquire_remote_apic)(int apicid);
|
||||
|
||||
/* apic ops */
|
||||
|
|
|
@ -263,7 +263,6 @@ struct genapic apic_bigsmp = {
|
|||
.wait_for_init_deassert = default_wait_for_init_deassert,
|
||||
|
||||
.smp_callin_clear_local_apic = NULL,
|
||||
.store_NMI_vector = NULL,
|
||||
.inquire_remote_apic = default_inquire_remote_apic,
|
||||
|
||||
.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: */
|
||||
.smp_callin_clear_local_apic = NULL,
|
||||
.store_NMI_vector = NULL,
|
||||
.inquire_remote_apic = default_inquire_remote_apic,
|
||||
|
||||
.read = native_apic_mem_read,
|
||||
|
|
|
@ -227,7 +227,6 @@ struct genapic apic_flat = {
|
|||
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
|
||||
.wait_for_init_deassert = NULL,
|
||||
.smp_callin_clear_local_apic = NULL,
|
||||
.store_NMI_vector = NULL,
|
||||
.inquire_remote_apic = NULL,
|
||||
|
||||
.read = native_apic_mem_read,
|
||||
|
@ -379,7 +378,6 @@ struct genapic apic_physflat = {
|
|||
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
|
||||
.wait_for_init_deassert = NULL,
|
||||
.smp_callin_clear_local_apic = NULL,
|
||||
.store_NMI_vector = NULL,
|
||||
.inquire_remote_apic = NULL,
|
||||
|
||||
.read = native_apic_mem_read,
|
||||
|
|
|
@ -232,7 +232,6 @@ struct genapic apic_x2apic_cluster = {
|
|||
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
|
||||
.wait_for_init_deassert = NULL,
|
||||
.smp_callin_clear_local_apic = NULL,
|
||||
.store_NMI_vector = NULL,
|
||||
.inquire_remote_apic = NULL,
|
||||
|
||||
.read = native_apic_msr_read,
|
||||
|
|
|
@ -218,7 +218,6 @@ struct genapic apic_x2apic_phys = {
|
|||
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
|
||||
.wait_for_init_deassert = NULL,
|
||||
.smp_callin_clear_local_apic = NULL,
|
||||
.store_NMI_vector = NULL,
|
||||
.inquire_remote_apic = NULL,
|
||||
|
||||
.read = native_apic_msr_read,
|
||||
|
|
|
@ -290,7 +290,6 @@ struct genapic apic_x2apic_uv_x = {
|
|||
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
|
||||
.wait_for_init_deassert = NULL,
|
||||
.smp_callin_clear_local_apic = NULL,
|
||||
.store_NMI_vector = NULL,
|
||||
.inquire_remote_apic = NULL,
|
||||
|
||||
.read = native_apic_msr_read,
|
||||
|
|
|
@ -342,16 +342,6 @@ static inline void numaq_smp_callin_clear_local_apic(void)
|
|||
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)
|
||||
{
|
||||
return &CPU_MASK_ALL;
|
||||
|
@ -564,7 +554,6 @@ struct genapic apic_numaq = {
|
|||
.wait_for_init_deassert = NULL,
|
||||
|
||||
.smp_callin_clear_local_apic = numaq_smp_callin_clear_local_apic,
|
||||
.store_NMI_vector = numaq_store_NMI_vector,
|
||||
.inquire_remote_apic = NULL,
|
||||
|
||||
.read = native_apic_mem_read,
|
||||
|
|
|
@ -131,7 +131,6 @@ struct genapic apic_default = {
|
|||
.wait_for_init_deassert = default_wait_for_init_deassert,
|
||||
|
||||
.smp_callin_clear_local_apic = NULL,
|
||||
.store_NMI_vector = NULL,
|
||||
.inquire_remote_apic = default_inquire_remote_apic,
|
||||
|
||||
.read = native_apic_mem_read,
|
||||
|
|
|
@ -745,21 +745,21 @@ static void __cpuinit do_fork_idle(struct work_struct *work)
|
|||
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
|
||||
* (ie clustered apic addressing mode), this is a LOGICAL apic ID.
|
||||
* 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;
|
||||
int timeout;
|
||||
unsigned long start_ip;
|
||||
unsigned short nmi_high = 0, nmi_low = 0;
|
||||
int timeout;
|
||||
struct create_idle c_idle = {
|
||||
.cpu = cpu,
|
||||
.done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done),
|
||||
.cpu = cpu,
|
||||
.done = COMPLETION_INITIALIZER_ONSTACK(c_idle.done),
|
||||
};
|
||||
|
||||
INIT_WORK(&c_idle.work, do_fork_idle);
|
||||
|
||||
alternatives_smp_switch(1);
|
||||
|
@ -824,9 +824,6 @@ do_rest:
|
|||
|
||||
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);
|
||||
/*
|
||||
* Be paranoid about clearing APIC errors.
|
||||
|
|
|
@ -590,7 +590,6 @@ struct genapic apic_summit = {
|
|||
.wait_for_init_deassert = default_wait_for_init_deassert,
|
||||
|
||||
.smp_callin_clear_local_apic = NULL,
|
||||
.store_NMI_vector = NULL,
|
||||
.inquire_remote_apic = default_inquire_remote_apic,
|
||||
|
||||
.read = native_apic_mem_read,
|
||||
|
|
Загрузка…
Ссылка в новой задаче