[PATCH Mütze] ARM: don't let the unwinder depend on exception handling

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Fri Nov 6 01:29:12 PST 2015


To be able to use dump_stack() without support exception handling the
definition of dump_stack has to move to a file that is actually compiled
without ARM_EXCEPTIONS.

Fixes: d332597c7c16 ("ARM: make exception handling optional")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
---
 arch/arm/Kconfig          | 1 -
 arch/arm/cpu/interrupts.c | 7 -------
 arch/arm/lib/unwind.c     | 5 +++++
 3 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 203f912e96e5..dafbf7807bbb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -317,7 +317,6 @@ config ARM_EXCEPTIONS
 config ARM_UNWIND
 	bool "enable stack unwinding support"
 	depends on AEABI
-	depends on ARM_EXCEPTIONS
 	help
 	  This option enables stack unwinding support in barebox
 	  using the information automatically generated by the
diff --git a/arch/arm/cpu/interrupts.c b/arch/arm/cpu/interrupts.c
index c437af71888a..fb4bb78daecf 100644
--- a/arch/arm/cpu/interrupts.c
+++ b/arch/arm/cpu/interrupts.c
@@ -71,13 +71,6 @@ void show_regs (struct pt_regs *regs)
 #endif
 }
 
-#ifdef CONFIG_ARM_UNWIND
-void dump_stack(void)
-{
-	unwind_backtrace(NULL);
-}
-#endif
-
 static void __noreturn do_exception(struct pt_regs *pt_regs)
 {
 	show_regs(pt_regs);
diff --git a/arch/arm/lib/unwind.c b/arch/arm/lib/unwind.c
index 7932bca702f3..c3dca5b61d7e 100644
--- a/arch/arm/lib/unwind.c
+++ b/arch/arm/lib/unwind.c
@@ -331,6 +331,11 @@ void unwind_backtrace(struct pt_regs *regs)
 	}
 }
 
+void dump_stack(void)
+{
+	unwind_backtrace(NULL);
+}
+
 static int unwind_init(void)
 {
 	struct unwind_idx *idx;
-- 
2.6.1




More information about the barebox mailing list