diff options
author | Laura Abbott <lauraa@codeaurora.org> | 2011-08-30 21:04:06 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-10-17 04:12:41 -0400 |
commit | b380ab4f85d641574d91b12b333848a0731a497c (patch) | |
tree | ee8db08db4cef2369d0221ea5f65162c729aa55c /arch/arm | |
parent | b3377d1865723cea5334954e6ffcb2182b6689c8 (diff) |
ARM: 7068/1: process: change from __backtrace to dump_stack in show_regs
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 <lauraa@codeaurora.org>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/include/asm/system.h | 1 | ||||
-rw-r--r-- | arch/arm/kernel/armksyms.c | 3 | ||||
-rw-r--r-- | arch/arm/kernel/process.c | 2 | ||||
-rw-r--r-- | 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 4adf71b2b54a..09cdfe6d960f 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h | |||
@@ -98,7 +98,6 @@ void hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, | |||
98 | #define xchg(ptr,x) \ | 98 | #define xchg(ptr,x) \ |
99 | ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) | 99 | ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) |
100 | 100 | ||
101 | extern asmlinkage void __backtrace(void); | ||
102 | extern asmlinkage void c_backtrace(unsigned long fp, int pmode); | 101 | extern asmlinkage void c_backtrace(unsigned long fp, int pmode); |
103 | 102 | ||
104 | struct mm_struct; | 103 | struct mm_struct; |
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c index aeef960ff795..8e3c6f11b0a1 100644 --- a/arch/arm/kernel/armksyms.c +++ b/arch/arm/kernel/armksyms.c | |||
@@ -49,9 +49,6 @@ extern void __aeabi_ulcmp(void); | |||
49 | 49 | ||
50 | extern void fpundefinstr(void); | 50 | extern void fpundefinstr(void); |
51 | 51 | ||
52 | |||
53 | EXPORT_SYMBOL(__backtrace); | ||
54 | |||
55 | /* platform dependent support */ | 52 | /* platform dependent support */ |
56 | EXPORT_SYMBOL(__udelay); | 53 | EXPORT_SYMBOL(__udelay); |
57 | EXPORT_SYMBOL(__const_udelay); | 54 | EXPORT_SYMBOL(__const_udelay); |
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 1a347f481e5e..fd0814076ff6 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -319,7 +319,7 @@ void show_regs(struct pt_regs * regs) | |||
319 | printk("\n"); | 319 | printk("\n"); |
320 | printk("Pid: %d, comm: %20s\n", task_pid_nr(current), current->comm); | 320 | printk("Pid: %d, comm: %20s\n", task_pid_nr(current), current->comm); |
321 | __show_regs(regs); | 321 | __show_regs(regs); |
322 | __backtrace(); | 322 | dump_stack(); |
323 | } | 323 | } |
324 | 324 | ||
325 | ATOMIC_NOTIFIER_HEAD(thread_notify_head); | 325 | ATOMIC_NOTIFIER_HEAD(thread_notify_head); |
diff --git a/arch/arm/lib/backtrace.S b/arch/arm/lib/backtrace.S index a673297b0cf1..cd07b5814c23 100644 --- a/arch/arm/lib/backtrace.S +++ b/arch/arm/lib/backtrace.S | |||
@@ -22,15 +22,10 @@ | |||
22 | #define mask r7 | 22 | #define mask r7 |
23 | #define offset r8 | 23 | #define offset r8 |
24 | 24 | ||
25 | ENTRY(__backtrace) | ||
26 | mov r1, #0x10 | ||
27 | mov r0, fp | ||
28 | |||
29 | ENTRY(c_backtrace) | 25 | ENTRY(c_backtrace) |
30 | 26 | ||
31 | #if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK) | 27 | #if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK) |
32 | mov pc, lr | 28 | mov pc, lr |
33 | ENDPROC(__backtrace) | ||
34 | ENDPROC(c_backtrace) | 29 | ENDPROC(c_backtrace) |
35 | #else | 30 | #else |
36 | stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location... | 31 | 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 | |||
107 | mov r1, frame | 102 | mov r1, frame |
108 | bl printk | 103 | bl printk |
109 | no_frame: ldmfd sp!, {r4 - r8, pc} | 104 | no_frame: ldmfd sp!, {r4 - r8, pc} |
110 | ENDPROC(__backtrace) | ||
111 | ENDPROC(c_backtrace) | 105 | ENDPROC(c_backtrace) |
112 | 106 | ||
113 | .pushsection __ex_table,"a" | 107 | .pushsection __ex_table,"a" |