mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 21:03:32 +00:00
x86/apic: Get rid of apic_phys
No need for an extra variable to find out whether the APIC has been mapped or is accessible (X2APIC mode). Provide an inline for this and check apic_mmio_base which is only set when the local APIC has been mapped. 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
f52e2c3e96
commit
78c3200084
1 changed files with 10 additions and 9 deletions
|
@ -99,6 +99,11 @@ static bool virt_ext_dest_id __ro_after_init;
|
|||
/* For parallel bootup. */
|
||||
unsigned long apic_mmio_base __ro_after_init;
|
||||
|
||||
static inline bool apic_accessible(void)
|
||||
{
|
||||
return x2apic_mode || apic_mmio_base;
|
||||
}
|
||||
|
||||
/*
|
||||
* Map cpu index to physical APIC ID
|
||||
*/
|
||||
|
@ -199,8 +204,6 @@ unsigned int lapic_timer_period = 0;
|
|||
|
||||
static void apic_pm_activate(void);
|
||||
|
||||
static unsigned long apic_phys __ro_after_init;
|
||||
|
||||
/*
|
||||
* Get the LAPIC version
|
||||
*/
|
||||
|
@ -1127,8 +1130,7 @@ void clear_local_APIC(void)
|
|||
int maxlvt;
|
||||
u32 v;
|
||||
|
||||
/* APIC hasn't been mapped yet */
|
||||
if (!x2apic_mode && !apic_phys)
|
||||
if (!apic_accessible())
|
||||
return;
|
||||
|
||||
maxlvt = lapic_get_maxlvt();
|
||||
|
@ -1218,8 +1220,7 @@ void apic_soft_disable(void)
|
|||
*/
|
||||
void disable_local_APIC(void)
|
||||
{
|
||||
/* APIC hasn't been mapped yet */
|
||||
if (!x2apic_mode && !apic_phys)
|
||||
if (!apic_accessible())
|
||||
return;
|
||||
|
||||
apic_soft_disable();
|
||||
|
@ -2142,7 +2143,7 @@ void __init init_apic_mappings(void)
|
|||
static __init void apic_set_fixmap(void)
|
||||
{
|
||||
set_fixmap_nocache(FIX_APIC_BASE, mp_lapic_addr);
|
||||
apic_phys = apic_mmio_base = APIC_BASE;
|
||||
apic_mmio_base = APIC_BASE;
|
||||
apic_printk(APIC_VERBOSE, "mapped APIC to %16lx (%16lx)\n",
|
||||
apic_mmio_base, mp_lapic_addr);
|
||||
apic_read_boot_cpu_id(false);
|
||||
|
@ -2896,11 +2897,11 @@ early_param("apic", apic_set_verbosity);
|
|||
|
||||
static int __init lapic_insert_resource(void)
|
||||
{
|
||||
if (!apic_phys)
|
||||
if (!apic_mmio_base)
|
||||
return -1;
|
||||
|
||||
/* Put local APIC into the resource map. */
|
||||
lapic_resource.start = apic_phys;
|
||||
lapic_resource.start = apic_mmio_base;
|
||||
lapic_resource.end = lapic_resource.start + PAGE_SIZE - 1;
|
||||
insert_resource(&iomem_resource, &lapic_resource);
|
||||
|
||||
|
|
Loading…
Reference in a new issue