x86/jailhouse: Hide x2apic code when CONFIG_X86_X2APIC=n
authorThomas Gleixner <tglx@linutronix.de>
Mon, 15 Jan 2018 09:24:34 +0000 (10:24 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 15 Jan 2018 09:26:18 +0000 (10:26 +0100)
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
arch/x86/kernel/jailhouse.c

index d6d5976a9b516fa5e4316a3d11513dfe37f9e88c..7ade152133c7ea25bad7f516c9bf95971f07dc6e 100644 (file)
@@ -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);