diff options
author | Daniel Thompson <daniel.thompson@linaro.org> | 2015-12-18 11:53:37 +0000 |
---|---|---|
committer | Daniel Thompson <daniel.thompson@linaro.org> | 2016-06-20 14:39:40 +0100 |
commit | 51b621d941d9a46074fd87ad6281edf408f5318e (patch) | |
tree | 23a00c7205874673652f927fbc590f9c2b5f52eb /arch/arm/include/asm/smp.h | |
parent | f04a42fa626ad31e9eae19a2343fa6ad1dccec71 (diff) |
ARM: Allow IPI_CPU_BACKTRACE to exploit FIQdev/trigger_backtrace-v4.6
The GIC (v1 & v2) driver allows its implementation of handle_arch_irq()
to be called from the FIQ handler but currently the ARM code is not
able to exploit this.
Extend handle_fiq_as_nmi() to call handle_arch_irq(). This will affect
all interrupt controllers, including ones that do not support FIQ. This
is OK because a spurious FIQ is normally fatal. Handling a spurious FIQ
like a normal interrupt does risk deadlock but does give us a chance
of surviving long enough to get an error message out.
We also extend the SMP code to indicate to irq drivers which IPIs they
should seek to implement using FIQ.
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Diffstat (limited to 'arch/arm/include/asm/smp.h')
-rw-r--r-- | arch/arm/include/asm/smp.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h index 3d6dc8b460e4..daf869cff02e 100644 --- a/arch/arm/include/asm/smp.h +++ b/arch/arm/include/asm/smp.h @@ -18,6 +18,15 @@ # error "<asm/smp.h> included in non-SMP build" #endif +/* + * Identify which IPIs are safe for the irqchip to handle using FIQ. + * + * This information is advisory. The interrupt controller may not be capable + * of routing these IPIs to FIQ and the kernel will continue to work if they + * are routed to IRQ as normal. + */ +#define SMP_IPI_FIQ_MASK 0x80 + #define raw_smp_processor_id() (current_thread_info()->cpu) struct seq_file; |