diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/include/asm/irq_work.h | 11 | ||||
-rw-r--r-- | arch/arm/kernel/smp.c | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/arch/arm/include/asm/irq_work.h b/arch/arm/include/asm/irq_work.h new file mode 100644 index 000000000000..712d03e5973a --- /dev/null +++ b/arch/arm/include/asm/irq_work.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #ifndef __ASM_ARM_IRQ_WORK_H | ||
2 | #define __ASM_ARM_IRQ_WORK_H | ||
3 | |||
4 | #include <asm/smp_plat.h> | ||
5 | |||
6 | static inline bool arch_irq_work_has_interrupt(void) | ||
7 | { | ||
8 | return is_smp(); | ||
9 | } | ||
10 | |||
11 | #endif /* _ASM_ARM_IRQ_WORK_H */ | ||
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 39c74a2c3df9..13396d3d600e 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -499,7 +499,7 @@ void arch_send_call_function_single_ipi(int cpu) | |||
499 | #ifdef CONFIG_IRQ_WORK | 499 | #ifdef CONFIG_IRQ_WORK |
500 | void arch_irq_work_raise(void) | 500 | void arch_irq_work_raise(void) |
501 | { | 501 | { |
502 | if (is_smp()) | 502 | if (arch_irq_work_has_interrupt()) |
503 | smp_cross_call(cpumask_of(smp_processor_id()), IPI_IRQ_WORK); | 503 | smp_cross_call(cpumask_of(smp_processor_id()), IPI_IRQ_WORK); |
504 | } | 504 | } |
505 | #endif | 505 | #endif |