summaryrefslogtreecommitdiff
path: root/arch/x86/kernel/jailhouse.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2018-01-15 12:24:34 +0300
committerThomas Gleixner <tglx@linutronix.de>2018-01-15 12:26:18 +0300
commitbe6d447e4f9c5cc6d48aabc3ec362b6a559c3fd7 (patch)
tree0bbab8b49e0b64e521374cac9385d047ff0086af /arch/x86/kernel/jailhouse.c
parenta0c01e4bb92d085462c293091a521cb9e7000371 (diff)
downloadlinux-be6d447e4f9c5cc6d48aabc3ec362b6a559c3fd7.tar.xz
x86/jailhouse: Hide x2apic code when CONFIG_X86_X2APIC=n
x2apic_phys is not available when CONFIG_X86_X2APIC=n and the code is not optimized out resulting in a build fail: jailhouse.c: In function ‘jailhouse_get_smp_config’: jailhouse.c:73:3: error: ‘x2apic_phys’ undeclared (first use in this function) Fixes: 11c8dc419bbc ("x86/jailhouse: Enable APIC and SMP support") Reported-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Jan Kiszka <jan.kiszka@siemens.com> Cc: jailhouse-dev@googlegroups.com
Diffstat (limited to 'arch/x86/kernel/jailhouse.c')
-rw-r--r--arch/x86/kernel/jailhouse.c33
1 files changed, 19 insertions, 14 deletions
diff --git a/arch/x86/kernel/jailhouse.c b/arch/x86/kernel/jailhouse.c
index d6d5976a9b51..7ade152133c7 100644
--- a/arch/x86/kernel/jailhouse.c
+++ b/arch/x86/kernel/jailhouse.c
@@ -52,6 +52,24 @@ static unsigned long jailhouse_get_tsc(void)
return precalibrated_tsc_khz;
}
+static void __init jailhouse_x2apic_init(void)
+{
+#ifdef CONFIG_X86_X2APIC
+ if (!x2apic_enabled())
+ return;
+ /*
+ * We do not have access to IR inside Jailhouse non-root cells. So
+ * we have to run in physical mode.
+ */
+ x2apic_phys = 1;
+ /*
+ * This will trigger the switch to apic_x2apic_phys. Empty OEM IDs
+ * ensure that only this APIC driver picks up the call.
+ */
+ default_acpi_madt_oem_check("", "");
+#endif
+}
+
static void __init jailhouse_get_smp_config(unsigned int early)
{
struct ioapic_domain_cfg ioapic_cfg = {
@@ -65,20 +83,7 @@ static void __init jailhouse_get_smp_config(unsigned int early)
};
unsigned int cpu;
- if (x2apic_enabled()) {
- /*
- * We do not have access to IR inside Jailhouse non-root cells.
- * So we have to run in physical mode.
- */
- x2apic_phys = 1;
-
- /*
- * This will trigger the switch to apic_x2apic_phys.
- * Empty OEM IDs ensure that only this APIC driver picks up
- * the call.
- */
- default_acpi_madt_oem_check("", "");
- }
+ jailhouse_x2apic_init();
register_lapic_address(0xfee00000);