/* 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
  */
 
 static void apic_pm_activate(void);
 
-static unsigned long apic_phys __ro_after_init;
-
 /*
  * Get the LAPIC version
  */
        int maxlvt;
        u32 v;
 
-       /* APIC hasn't been mapped yet */
-       if (!x2apic_mode && !apic_phys)
+       if (!apic_accessible())
                return;
 
        maxlvt = lapic_get_maxlvt();
  */
 void disable_local_APIC(void)
 {
-       /* APIC hasn't been mapped yet */
-       if (!x2apic_mode && !apic_phys)
+       if (!apic_accessible())
                return;
 
        apic_soft_disable();
 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);
 
 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);