diff options
author | Nikolay Borisov <Nikolay.Borisov@arm.com> | 2014-06-03 14:50:09 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2014-07-18 07:29:18 -0400 |
commit | 49432d4acf96a5dcc02d14978dcc75f522492757 (patch) | |
tree | b4c1fa7733d2222a0a4a38a8cc5f89750df40076 | |
parent | c8bee0ad78b2107ffb56fa82f0ab2b762311d172 (diff) |
ARM: 8074/1: traps: Make use of the frame_pointer macro
Use the newly-introduced frame_pointer macro to extract
the correct FP based on whether we are in THUMB2 mode or not.
Signed-off-by: Nikolay Borisov <Nikolay.Borisov@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/kernel/traps.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index abd2fc067736..c8e4bb714944 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -31,11 +31,13 @@ | |||
31 | #include <asm/exception.h> | 31 | #include <asm/exception.h> |
32 | #include <asm/unistd.h> | 32 | #include <asm/unistd.h> |
33 | #include <asm/traps.h> | 33 | #include <asm/traps.h> |
34 | #include <asm/ptrace.h> | ||
34 | #include <asm/unwind.h> | 35 | #include <asm/unwind.h> |
35 | #include <asm/tls.h> | 36 | #include <asm/tls.h> |
36 | #include <asm/system_misc.h> | 37 | #include <asm/system_misc.h> |
37 | #include <asm/opcodes.h> | 38 | #include <asm/opcodes.h> |
38 | 39 | ||
40 | |||
39 | static const char *handler[]= { | 41 | static const char *handler[]= { |
40 | "prefetch abort", | 42 | "prefetch abort", |
41 | "data abort", | 43 | "data abort", |
@@ -184,7 +186,7 @@ static void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk) | |||
184 | tsk = current; | 186 | tsk = current; |
185 | 187 | ||
186 | if (regs) { | 188 | if (regs) { |
187 | fp = regs->ARM_fp; | 189 | fp = frame_pointer(regs); |
188 | mode = processor_mode(regs); | 190 | mode = processor_mode(regs); |
189 | } else if (tsk != current) { | 191 | } else if (tsk != current) { |
190 | fp = thread_saved_fp(tsk); | 192 | fp = thread_saved_fp(tsk); |
@@ -719,7 +721,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs) | |||
719 | dump_instr("", regs); | 721 | dump_instr("", regs); |
720 | if (user_mode(regs)) { | 722 | if (user_mode(regs)) { |
721 | __show_regs(regs); | 723 | __show_regs(regs); |
722 | c_backtrace(regs->ARM_fp, processor_mode(regs)); | 724 | c_backtrace(frame_pointer(regs), processor_mode(regs)); |
723 | } | 725 | } |
724 | } | 726 | } |
725 | #endif | 727 | #endif |