x86/apic: fix build breakage caused by incomplete backport to 3.10
authorWilly Tarreau <w@1wt.eu>
Thu, 2 Nov 2017 22:22:31 +0000 (23:22 +0100)
committerWilly Tarreau <w@1wt.eu>
Thu, 2 Nov 2017 22:39:31 +0000 (23:39 +0100)
Commit 928a277 ("x86/apic: Do not init irq remapping if ioapic is
disabled") introduced in 3.10.105 introduced an implicit dependency of
CONFIG_X86_LOCAL_APIC to CONFIG_X86_IO_APIC which was later solved as
part of simplifications on the config dependencies in more recent kernels.
This dependency results in build failure when CONFIG_X86_LOCAL_APIC is
set without CONFIG_X86_IO_APIC (this setup requires CONFIG_SMP=n). The
reason is that skip_ioapic_setup is declared in apic.c and that the
backported code was picked from a context where the #ifdef surrounding
the function used to cover this condition.

Let's just add the appropriate #ifdef to fix the 3.10 backport.

Thanks to Christoph Biedl for reporting and diagnosing this one.

Reported-by: Christoph Biedl <linux-kernel.bfrz@manchmal.in-ulm.de>
Cc: Christoph Biedl <linux-kernel.bfrz@manchmal.in-ulm.de>
Cc: Jan Beulich <JBeulich@suse.com>
Cc: Wanpeng Li <wanpeng.li@hotmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
arch/x86/kernel/apic/apic.c

index 3cd8bfc3c4b69ef659a300fa2c6cbe34458fb46e..bc37ddeaa627a0091040305fa1d9ebb674e516da 100644 (file)
@@ -1581,8 +1581,10 @@ void __init enable_IR_x2apic(void)
        int ret, x2apic_enabled = 0;
        int hardware_init_ret;
 
+#ifdef CONFIG_X86_IO_APIC
        if (skip_ioapic_setup)
                return;
+#endif
 
        /* Make sure irq_remap_ops are initialized */
        setup_irq_remapping_ops();