aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/irq.h
diff options
context:
space:
mode:
authorDaniel Thompson <daniel.thompson@linaro.org>2014-09-11 10:56:45 +0100
committerDaniel Thompson <daniel.thompson@linaro.org>2015-07-03 15:54:13 +0100
commit25481b186d4a449df390c3c66e36eb1c008fd3da (patch)
tree4a91b43ab0d191e32f7b5664420994f4139ad2fe /arch/arm/include/asm/irq.h
parent5f458e05a6d0c378269bf4650f27f22dec2a7971 (diff)
ARM: Add support for on-demand backtrace of other CPUsdev/trigger_backtrace
Replicate the x86 code to trigger a backtrace using an NMI and hook it up to IPI on ARM. The code differs slightly from the code on x86 because, on ARM, we do now know at compile time whether a platform is capable of supporting FIQ. We must avoid using an IPI to request a backtrace from the CPU on which the backtrace was requested if interrupts are disabled and fall back to generating it directly. In addition the implementation of arch_trigger_all_cpu_backtrace() the patch also includes a few small items of plumbing that must be hooked up for the new code to work. Credit: Russell King provided the initial prototype implementing this feature for ARM. Today the patch has been reworked and, mostly, rewriten to keep it aligned with x86. However this patch does still include some code from Russell's original prototype. Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org> Cc: Russell King <linux@arm.linux.org.uk> Cc: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'arch/arm/include/asm/irq.h')
-rw-r--r--arch/arm/include/asm/irq.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/include/asm/irq.h b/arch/arm/include/asm/irq.h
index 53c15dec7af6..be1d07d59ee9 100644
--- a/arch/arm/include/asm/irq.h
+++ b/arch/arm/include/asm/irq.h
@@ -35,6 +35,11 @@ extern void (*handle_arch_irq)(struct pt_regs *);
extern void set_handle_irq(void (*handle_irq)(struct pt_regs *));
#endif
+#ifdef CONFIG_SMP
+extern void arch_trigger_all_cpu_backtrace(bool);
+#define arch_trigger_all_cpu_backtrace(x) arch_trigger_all_cpu_backtrace(x)
+#endif
+
#endif
#endif