x86: apic: Fixmap apic address even if apic disabled

In case if apic were disabled by boot option
we still need read_apic operation. So fixmap
a fake apic area if needed.

[ Impact: fix boot crash ]

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: yinghai@kernel.org
Cc: eswierk@aristanetworks.com
LKML-Reference: <20090511134140.GH4624@lenovo>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Cyrill Gorcunov 2009-05-11 17:41:40 +04:00 committed by Ingo Molnar
parent 97a5271465
commit cec6be6d10
1 changed files with 9 additions and 8 deletions

View File

@ -1587,13 +1587,6 @@ void __init init_apic_mappings(void)
} else
apic_phys = mp_lapic_addr;
/* lets check if we may NOP'ify apic operations */
if (!cpu_has_apic) {
pr_info("APIC: disable apic facility\n");
apic_disable();
return;
}
/*
* acpi lapic path already maps that address in
* acpi_register_lapic_address()
@ -1602,7 +1595,15 @@ void __init init_apic_mappings(void)
set_fixmap_nocache(FIX_APIC_BASE, apic_phys);
apic_printk(APIC_VERBOSE, "mapped APIC to %08lx (%08lx)\n",
APIC_BASE, apic_phys);
APIC_BASE, apic_phys);
/* lets check if we may NOP'ify apic operations */
if (!cpu_has_apic) {
pr_info("APIC: disable apic facility\n");
apic_disable();
return;
}
/*
* Fetch the APIC ID of the BSP in case we have a
* default configuration (or the MP table is broken).