aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/irq_work.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2017-08-28 02:47:35 -0400
committerIngo Molnar <mingo@kernel.org>2017-08-29 05:42:30 -0400
commita45525b5b47c10c0446eda21227792b39af233dc (patch)
tree96675f0341e2ac551ab6625def641fdb5c72e22b /arch/x86/kernel/irq_work.c
parent0428e01a2f13a6b7dae8289fb10030dbea336dee (diff)
x86/irq_work: Make it depend on APIC
The irq work interrupt vector is only installed when CONFIG_X86_LOCAL_APIC is enabled, but the interrupt handler is compiled in unconditionally. Compile the cruft out when the APIC is disabled. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Andy Lutomirski <luto@kernel.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Link: http://lkml.kernel.org/r/20170828064957.691909010@linutronix.de Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kernel/irq_work.c')
-rw-r--r--arch/x86/kernel/irq_work.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kernel/irq_work.c b/arch/x86/kernel/irq_work.c
index 8054caee401f..70dee056f92b 100644
--- a/arch/x86/kernel/irq_work.c
+++ b/arch/x86/kernel/irq_work.c
@@ -11,6 +11,7 @@
11#include <asm/trace/irq_vectors.h> 11#include <asm/trace/irq_vectors.h>
12#include <linux/interrupt.h> 12#include <linux/interrupt.h>
13 13
14#ifdef CONFIG_X86_LOCAL_APIC
14__visible void __irq_entry smp_irq_work_interrupt(struct pt_regs *regs) 15__visible void __irq_entry smp_irq_work_interrupt(struct pt_regs *regs)
15{ 16{
16 ipi_entering_ack_irq(); 17 ipi_entering_ack_irq();
@@ -23,11 +24,10 @@ __visible void __irq_entry smp_irq_work_interrupt(struct pt_regs *regs)
23 24
24void arch_irq_work_raise(void) 25void arch_irq_work_raise(void)
25{ 26{
26#ifdef CONFIG_X86_LOCAL_APIC
27 if (!arch_irq_work_has_interrupt()) 27 if (!arch_irq_work_has_interrupt())
28 return; 28 return;
29 29
30 apic->send_IPI_self(IRQ_WORK_VECTOR); 30 apic->send_IPI_self(IRQ_WORK_VECTOR);
31 apic_wait_icr_idle(); 31 apic_wait_icr_idle();
32#endif
33} 32}
33#endif