Commit db7eba292e913390fa881272bfbc3da0a5380513
1 parent
3f9b8520b0
Exists in
master
and in
7 other branches
sh: Fix up asm-generic/ptrace.h fallout.
There was an ordering issue with regards to instruction_pointer() being used in profile_pc() prior to the asm-generic/ptrace.h include, which subsequently provided the instruction_pointer() definition. In the interest of simplicity we simply open-code the regs->pc deref for the profile_pc() definition instead. The FP functions were also broken due to a lack of a common regs->fp, so provide a common GET_FP() that is safe for both architectures in order to fix up the frame pointer helpers too. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Showing 1 changed file with 4 additions and 2 deletions Side-by-side Diff
arch/sh/include/asm/ptrace.h
... | ... | @@ -41,8 +41,10 @@ |
41 | 41 | |
42 | 42 | #define user_mode(regs) (((regs)->sr & 0x40000000)==0) |
43 | 43 | #define kernel_stack_pointer(_regs) ((unsigned long)(_regs)->regs[15]) |
44 | -#define GET_USP(regs) ((regs)->regs[15]) | |
45 | 44 | |
45 | +#define GET_FP(regs) ((regs)->regs[14]) | |
46 | +#define GET_USP(regs) ((regs)->regs[15]) | |
47 | + | |
46 | 48 | extern void show_regs(struct pt_regs *); |
47 | 49 | |
48 | 50 | #define arch_has_single_step() (1) |
... | ... | @@ -131,7 +133,7 @@ |
131 | 133 | |
132 | 134 | static inline unsigned long profile_pc(struct pt_regs *regs) |
133 | 135 | { |
134 | - unsigned long pc = instruction_pointer(regs); | |
136 | + unsigned long pc = regs->pc; | |
135 | 137 | |
136 | 138 | if (virt_addr_uncached(pc)) |
137 | 139 | return CAC_ADDR(pc); |