[PATCH] process: change from __backtrace to dump_stack in show_regs
From: Nicolas Pitre <hidden>
Date: 2011-08-26 00:09:04
Also in:
linux-arm-msm, lkml
On Thu, 25 Aug 2011, Laura Abbott wrote:
Currently, show_regs calls __backtrace which does nothing if CONFIG_FRAME_POINTER is not set. Switch to dump_stack which handles both CONFIG_FRAME_POINTER and CONFIG_ARM_UNWIND correctly. __backtrace is now superseded by dump_stack in general and show_regs was the last caller so remove __backtrace as well. Signed-off-by: Laura Abbott <redacted>
Acked-by: Nicolas Pitre <redacted>
quoted hunk ↗ jump to hunk
--- arch/arm/include/asm/system.h | 1 - arch/arm/kernel/armksyms.c | 3 --- arch/arm/kernel/process.c | 2 +- arch/arm/lib/backtrace.S | 6 ------ 4 files changed, 1 insertions(+), 11 deletions(-)diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h index 832888d..4fc2edd 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h@@ -97,7 +97,6 @@ void hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, #define xchg(ptr,x) \ ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) -extern asmlinkage void __backtrace(void); extern asmlinkage void c_backtrace(unsigned long fp, int pmode); struct mm_struct;diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c index aeef960..8e3c6f1 100644 --- a/arch/arm/kernel/armksyms.c +++ b/arch/arm/kernel/armksyms.c@@ -49,9 +49,6 @@ extern void __aeabi_ulcmp(void); extern void fpundefinstr(void); - -EXPORT_SYMBOL(__backtrace); - /* platform dependent support */ EXPORT_SYMBOL(__udelay); EXPORT_SYMBOL(__const_udelay);diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 1a347f4..fd08140 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c@@ -319,7 +319,7 @@ void show_regs(struct pt_regs * regs) printk("\n"); printk("Pid: %d, comm: %20s\n", task_pid_nr(current), current->comm); __show_regs(regs); - __backtrace(); + dump_stack(); } ATOMIC_NOTIFIER_HEAD(thread_notify_head);diff --git a/arch/arm/lib/backtrace.S b/arch/arm/lib/backtrace.S index a673297..cd07b58 100644 --- a/arch/arm/lib/backtrace.S +++ b/arch/arm/lib/backtrace.S@@ -22,15 +22,10 @@ #define mask r7 #define offset r8 -ENTRY(__backtrace) - mov r1, #0x10 - mov r0, fp - ENTRY(c_backtrace) #if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK) mov pc, lr -ENDPROC(__backtrace) ENDPROC(c_backtrace) #else stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location...@@ -107,7 +102,6 @@ for_each_frame: tst frame, mask @ Check for address exceptions mov r1, frame bl printk no_frame: ldmfd sp!, {r4 - r8, pc} -ENDPROC(__backtrace) ENDPROC(c_backtrace) .pushsection __ex_table,"a"-- 1.7.3.3