x86/apic: Nuke unused apic::inquire_remote_apic()
Put it to the other historical leftovers. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Tested-by: Michael Kelley <mikelley@microsoft.com> Tested-by: Sohil Mehta <sohil.mehta@intel.com> Tested-by: Juergen Gross <jgross@suse.com> # Xen PV (dom0 and unpriv. guest)
This commit is contained in:
parent
b3bc5dd994
commit
1d90c9f731
@ -66,20 +66,6 @@ enum apic_intr_mode_id {
|
|||||||
APIC_SYMMETRIC_IO_NO_ROUTING
|
APIC_SYMMETRIC_IO_NO_ROUTING
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
|
||||||
extern void __inquire_remote_apic(int apicid);
|
|
||||||
#else /* CONFIG_SMP */
|
|
||||||
static inline void __inquire_remote_apic(int apicid)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_SMP */
|
|
||||||
|
|
||||||
static inline void default_inquire_remote_apic(int apicid)
|
|
||||||
{
|
|
||||||
if (apic_verbosity >= APIC_DEBUG)
|
|
||||||
__inquire_remote_apic(apicid);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* With 82489DX we can't rely on apic feature bit
|
* With 82489DX we can't rely on apic feature bit
|
||||||
* retrieved via cpuid but still have to deal with
|
* retrieved via cpuid but still have to deal with
|
||||||
@ -330,8 +316,6 @@ struct apic {
|
|||||||
/* wakeup secondary CPU using 64-bit wakeup point */
|
/* wakeup secondary CPU using 64-bit wakeup point */
|
||||||
int (*wakeup_secondary_cpu_64)(int apicid, unsigned long start_eip);
|
int (*wakeup_secondary_cpu_64)(int apicid, unsigned long start_eip);
|
||||||
|
|
||||||
void (*inquire_remote_apic)(int apicid);
|
|
||||||
|
|
||||||
#ifdef CONFIG_X86_32
|
#ifdef CONFIG_X86_32
|
||||||
/*
|
/*
|
||||||
* Called very early during boot from get_smp_config(). It should
|
* Called very early during boot from get_smp_config(). It should
|
||||||
|
@ -139,8 +139,6 @@ static struct apic apic_flat __ro_after_init = {
|
|||||||
.send_IPI_all = default_send_IPI_all,
|
.send_IPI_all = default_send_IPI_all,
|
||||||
.send_IPI_self = default_send_IPI_self,
|
.send_IPI_self = default_send_IPI_self,
|
||||||
|
|
||||||
.inquire_remote_apic = default_inquire_remote_apic,
|
|
||||||
|
|
||||||
.read = native_apic_mem_read,
|
.read = native_apic_mem_read,
|
||||||
.write = native_apic_mem_write,
|
.write = native_apic_mem_write,
|
||||||
.eoi_write = native_apic_mem_write,
|
.eoi_write = native_apic_mem_write,
|
||||||
@ -230,8 +228,6 @@ static struct apic apic_physflat __ro_after_init = {
|
|||||||
.send_IPI_all = default_send_IPI_all,
|
.send_IPI_all = default_send_IPI_all,
|
||||||
.send_IPI_self = default_send_IPI_self,
|
.send_IPI_self = default_send_IPI_self,
|
||||||
|
|
||||||
.inquire_remote_apic = default_inquire_remote_apic,
|
|
||||||
|
|
||||||
.read = native_apic_mem_read,
|
.read = native_apic_mem_read,
|
||||||
.write = native_apic_mem_write,
|
.write = native_apic_mem_write,
|
||||||
.eoi_write = native_apic_mem_write,
|
.eoi_write = native_apic_mem_write,
|
||||||
|
@ -125,8 +125,6 @@ struct apic apic_noop __ro_after_init = {
|
|||||||
|
|
||||||
.wakeup_secondary_cpu = noop_wakeup_secondary_cpu,
|
.wakeup_secondary_cpu = noop_wakeup_secondary_cpu,
|
||||||
|
|
||||||
.inquire_remote_apic = NULL,
|
|
||||||
|
|
||||||
.read = noop_apic_read,
|
.read = noop_apic_read,
|
||||||
.write = noop_apic_write,
|
.write = noop_apic_write,
|
||||||
.eoi_write = noop_apic_write,
|
.eoi_write = noop_apic_write,
|
||||||
|
@ -273,7 +273,6 @@ static const struct apic apic_numachip1 __refconst = {
|
|||||||
.send_IPI_self = numachip_send_IPI_self,
|
.send_IPI_self = numachip_send_IPI_self,
|
||||||
|
|
||||||
.wakeup_secondary_cpu = numachip_wakeup_secondary,
|
.wakeup_secondary_cpu = numachip_wakeup_secondary,
|
||||||
.inquire_remote_apic = NULL, /* REMRD not supported */
|
|
||||||
|
|
||||||
.read = native_apic_mem_read,
|
.read = native_apic_mem_read,
|
||||||
.write = native_apic_mem_write,
|
.write = native_apic_mem_write,
|
||||||
@ -320,7 +319,6 @@ static const struct apic apic_numachip2 __refconst = {
|
|||||||
.send_IPI_self = numachip_send_IPI_self,
|
.send_IPI_self = numachip_send_IPI_self,
|
||||||
|
|
||||||
.wakeup_secondary_cpu = numachip_wakeup_secondary,
|
.wakeup_secondary_cpu = numachip_wakeup_secondary,
|
||||||
.inquire_remote_apic = NULL, /* REMRD not supported */
|
|
||||||
|
|
||||||
.read = native_apic_mem_read,
|
.read = native_apic_mem_read,
|
||||||
.write = native_apic_mem_write,
|
.write = native_apic_mem_write,
|
||||||
|
@ -153,8 +153,6 @@ static struct apic apic_bigsmp __ro_after_init = {
|
|||||||
.send_IPI_all = bigsmp_send_IPI_all,
|
.send_IPI_all = bigsmp_send_IPI_all,
|
||||||
.send_IPI_self = default_send_IPI_self,
|
.send_IPI_self = default_send_IPI_self,
|
||||||
|
|
||||||
.inquire_remote_apic = default_inquire_remote_apic,
|
|
||||||
|
|
||||||
.read = native_apic_mem_read,
|
.read = native_apic_mem_read,
|
||||||
.write = native_apic_mem_write,
|
.write = native_apic_mem_write,
|
||||||
.eoi_write = native_apic_mem_write,
|
.eoi_write = native_apic_mem_write,
|
||||||
|
@ -95,8 +95,6 @@ static struct apic apic_default __ro_after_init = {
|
|||||||
.send_IPI_all = default_send_IPI_all,
|
.send_IPI_all = default_send_IPI_all,
|
||||||
.send_IPI_self = default_send_IPI_self,
|
.send_IPI_self = default_send_IPI_self,
|
||||||
|
|
||||||
.inquire_remote_apic = default_inquire_remote_apic,
|
|
||||||
|
|
||||||
.read = native_apic_mem_read,
|
.read = native_apic_mem_read,
|
||||||
.write = native_apic_mem_write,
|
.write = native_apic_mem_write,
|
||||||
.eoi_write = native_apic_mem_write,
|
.eoi_write = native_apic_mem_write,
|
||||||
|
@ -265,8 +265,6 @@ static struct apic apic_x2apic_cluster __ro_after_init = {
|
|||||||
.send_IPI_all = x2apic_send_IPI_all,
|
.send_IPI_all = x2apic_send_IPI_all,
|
||||||
.send_IPI_self = x2apic_send_IPI_self,
|
.send_IPI_self = x2apic_send_IPI_self,
|
||||||
|
|
||||||
.inquire_remote_apic = NULL,
|
|
||||||
|
|
||||||
.read = native_apic_msr_read,
|
.read = native_apic_msr_read,
|
||||||
.write = native_apic_msr_write,
|
.write = native_apic_msr_write,
|
||||||
.eoi_write = native_apic_msr_eoi_write,
|
.eoi_write = native_apic_msr_eoi_write,
|
||||||
|
@ -189,8 +189,6 @@ static struct apic apic_x2apic_phys __ro_after_init = {
|
|||||||
.send_IPI_all = x2apic_send_IPI_all,
|
.send_IPI_all = x2apic_send_IPI_all,
|
||||||
.send_IPI_self = x2apic_send_IPI_self,
|
.send_IPI_self = x2apic_send_IPI_self,
|
||||||
|
|
||||||
.inquire_remote_apic = NULL,
|
|
||||||
|
|
||||||
.read = native_apic_msr_read,
|
.read = native_apic_msr_read,
|
||||||
.write = native_apic_msr_write,
|
.write = native_apic_msr_write,
|
||||||
.eoi_write = native_apic_msr_eoi_write,
|
.eoi_write = native_apic_msr_eoi_write,
|
||||||
|
@ -862,7 +862,6 @@ static struct apic apic_x2apic_uv_x __ro_after_init = {
|
|||||||
.send_IPI_self = uv_send_IPI_self,
|
.send_IPI_self = uv_send_IPI_self,
|
||||||
|
|
||||||
.wakeup_secondary_cpu = uv_wakeup_secondary,
|
.wakeup_secondary_cpu = uv_wakeup_secondary,
|
||||||
.inquire_remote_apic = NULL,
|
|
||||||
|
|
||||||
.read = native_apic_msr_read,
|
.read = native_apic_msr_read,
|
||||||
.write = native_apic_msr_write,
|
.write = native_apic_msr_write,
|
||||||
|
@ -774,44 +774,6 @@ static void impress_friends(void)
|
|||||||
pr_debug("Before bogocount - setting activated=1\n");
|
pr_debug("Before bogocount - setting activated=1\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void __inquire_remote_apic(int apicid)
|
|
||||||
{
|
|
||||||
unsigned i, regs[] = { APIC_ID >> 4, APIC_LVR >> 4, APIC_SPIV >> 4 };
|
|
||||||
const char * const names[] = { "ID", "VERSION", "SPIV" };
|
|
||||||
int timeout;
|
|
||||||
u32 status;
|
|
||||||
|
|
||||||
pr_info("Inquiring remote APIC 0x%x...\n", apicid);
|
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(regs); i++) {
|
|
||||||
pr_info("... APIC 0x%x %s: ", apicid, names[i]);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Wait for idle.
|
|
||||||
*/
|
|
||||||
status = safe_apic_wait_icr_idle();
|
|
||||||
if (status)
|
|
||||||
pr_cont("a previous APIC delivery may have failed\n");
|
|
||||||
|
|
||||||
apic_icr_write(APIC_DM_REMRD | regs[i], apicid);
|
|
||||||
|
|
||||||
timeout = 0;
|
|
||||||
do {
|
|
||||||
udelay(100);
|
|
||||||
status = apic_read(APIC_ICR) & APIC_ICR_RR_MASK;
|
|
||||||
} while (status == APIC_ICR_RR_INPROG && timeout++ < 1000);
|
|
||||||
|
|
||||||
switch (status) {
|
|
||||||
case APIC_ICR_RR_VALID:
|
|
||||||
status = apic_read(APIC_RRR);
|
|
||||||
pr_cont("%08x\n", status);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
pr_cont("failed\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The Multiprocessor Specification 1.4 (1997) example code suggests
|
* The Multiprocessor Specification 1.4 (1997) example code suggests
|
||||||
* that there should be a 10ms delay between the BSP asserting INIT
|
* that there should be a 10ms delay between the BSP asserting INIT
|
||||||
|
@ -129,10 +129,6 @@ static void xen_noop(void)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xen_silent_inquire(int apicid)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static int xen_cpu_present_to_apicid(int cpu)
|
static int xen_cpu_present_to_apicid(int cpu)
|
||||||
{
|
{
|
||||||
if (cpu_present(cpu))
|
if (cpu_present(cpu))
|
||||||
@ -173,9 +169,6 @@ static struct apic xen_pv_apic = {
|
|||||||
.send_IPI_all = xen_send_IPI_all,
|
.send_IPI_all = xen_send_IPI_all,
|
||||||
.send_IPI_self = xen_send_IPI_self,
|
.send_IPI_self = xen_send_IPI_self,
|
||||||
#endif
|
#endif
|
||||||
/* .wait_for_init_deassert- used by AP bootup - smp_callin which we don't use */
|
|
||||||
.inquire_remote_apic = xen_silent_inquire,
|
|
||||||
|
|
||||||
.read = xen_apic_read,
|
.read = xen_apic_read,
|
||||||
.write = xen_apic_write,
|
.write = xen_apic_write,
|
||||||
.eoi_write = xen_apic_write,
|
.eoi_write = xen_apic_write,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user