diff options
-rw-r--r-- | arch/arm/include/asm/ptrace.h | 7 | ||||
-rw-r--r-- | arch/arm/include/asm/thread_info.h | 2 | ||||
-rw-r--r-- | arch/arm/kernel/process.c | 2 | ||||
-rw-r--r-- | arch/arm/kernel/ptrace.c | 8 | ||||
-rw-r--r-- | arch/arm/kernel/time.c | 2 |
5 files changed, 7 insertions, 14 deletions
diff --git a/arch/arm/include/asm/ptrace.h b/arch/arm/include/asm/ptrace.h index b415c0e85458..73192618f1c2 100644 --- a/arch/arm/include/asm/ptrace.h +++ b/arch/arm/include/asm/ptrace.h | |||
@@ -54,7 +54,6 @@ | |||
54 | #define PSR_C_BIT 0x20000000 | 54 | #define PSR_C_BIT 0x20000000 |
55 | #define PSR_Z_BIT 0x40000000 | 55 | #define PSR_Z_BIT 0x40000000 |
56 | #define PSR_N_BIT 0x80000000 | 56 | #define PSR_N_BIT 0x80000000 |
57 | #define PCMASK 0 | ||
58 | 57 | ||
59 | /* | 58 | /* |
60 | * Groups of PSR bits | 59 | * Groups of PSR bits |
@@ -139,11 +138,7 @@ static inline int valid_user_regs(struct pt_regs *regs) | |||
139 | return 0; | 138 | return 0; |
140 | } | 139 | } |
141 | 140 | ||
142 | #define pc_pointer(v) \ | 141 | #define instruction_pointer(regs) (regs)->ARM_pc |
143 | ((v) & ~PCMASK) | ||
144 | |||
145 | #define instruction_pointer(regs) \ | ||
146 | (pc_pointer((regs)->ARM_pc)) | ||
147 | 142 | ||
148 | #ifdef CONFIG_SMP | 143 | #ifdef CONFIG_SMP |
149 | extern unsigned long profile_pc(struct pt_regs *regs); | 144 | extern unsigned long profile_pc(struct pt_regs *regs); |
diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h index e56fa48e4ae7..68b9ec82a37f 100644 --- a/arch/arm/include/asm/thread_info.h +++ b/arch/arm/include/asm/thread_info.h | |||
@@ -98,7 +98,7 @@ static inline struct thread_info *current_thread_info(void) | |||
98 | } | 98 | } |
99 | 99 | ||
100 | #define thread_saved_pc(tsk) \ | 100 | #define thread_saved_pc(tsk) \ |
101 | ((unsigned long)(pc_pointer(task_thread_info(tsk)->cpu_context.pc))) | 101 | ((unsigned long)(task_thread_info(tsk)->cpu_context.pc)) |
102 | #define thread_saved_fp(tsk) \ | 102 | #define thread_saved_fp(tsk) \ |
103 | ((unsigned long)(task_thread_info(tsk)->cpu_context.fp)) | 103 | ((unsigned long)(task_thread_info(tsk)->cpu_context.fp)) |
104 | 104 | ||
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index a2e75420858e..2ce9a401c8f2 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -385,7 +385,7 @@ unsigned long get_wchan(struct task_struct *p) | |||
385 | do { | 385 | do { |
386 | if (fp < stack_start || fp > stack_end) | 386 | if (fp < stack_start || fp > stack_end) |
387 | return 0; | 387 | return 0; |
388 | lr = pc_pointer (((unsigned long *)fp)[-1]); | 388 | lr = ((unsigned long *)fp)[-1]; |
389 | if (!in_sched_functions(lr)) | 389 | if (!in_sched_functions(lr)) |
390 | return lr; | 390 | return lr; |
391 | fp = *(unsigned long *) (fp - 12); | 391 | fp = *(unsigned long *) (fp - 12); |
diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index 4b05dc5c1023..77ea1f27f406 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c | |||
@@ -126,7 +126,7 @@ ptrace_getrn(struct task_struct *child, unsigned long insn) | |||
126 | 126 | ||
127 | val = get_user_reg(child, reg); | 127 | val = get_user_reg(child, reg); |
128 | if (reg == 15) | 128 | if (reg == 15) |
129 | val = pc_pointer(val + 8); | 129 | val += 8; |
130 | 130 | ||
131 | return val; | 131 | return val; |
132 | } | 132 | } |
@@ -278,8 +278,7 @@ get_branch_address(struct task_struct *child, unsigned long pc, unsigned long in | |||
278 | else | 278 | else |
279 | base -= aluop2; | 279 | base -= aluop2; |
280 | } | 280 | } |
281 | if (read_u32(child, base, &alt) == 0) | 281 | read_u32(child, base, &alt); |
282 | alt = pc_pointer(alt); | ||
283 | } | 282 | } |
284 | break; | 283 | break; |
285 | 284 | ||
@@ -305,8 +304,7 @@ get_branch_address(struct task_struct *child, unsigned long pc, unsigned long in | |||
305 | 304 | ||
306 | base = ptrace_getrn(child, insn); | 305 | base = ptrace_getrn(child, insn); |
307 | 306 | ||
308 | if (read_u32(child, base + nr_regs, &alt) == 0) | 307 | read_u32(child, base + nr_regs, &alt); |
309 | alt = pc_pointer(alt); | ||
310 | break; | 308 | break; |
311 | } | 309 | } |
312 | break; | 310 | break; |
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c index 368d171754cf..c68b44aa88d2 100644 --- a/arch/arm/kernel/time.c +++ b/arch/arm/kernel/time.c | |||
@@ -59,7 +59,7 @@ unsigned long profile_pc(struct pt_regs *regs) | |||
59 | 59 | ||
60 | if (in_lock_functions(pc)) { | 60 | if (in_lock_functions(pc)) { |
61 | fp = regs->ARM_fp; | 61 | fp = regs->ARM_fp; |
62 | pc = pc_pointer(((unsigned long *)fp)[-1]); | 62 | pc = ((unsigned long *)fp)[-1]; |
63 | } | 63 | } |
64 | 64 | ||
65 | return pc; | 65 | return pc; |