diff options
Diffstat (limited to 'arch/powerpc/perf/callchain.c')
-rw-r--r-- | arch/powerpc/perf/callchain.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/powerpc/perf/callchain.c b/arch/powerpc/perf/callchain.c index e8a18d1cc7c9..74d1e780748b 100644 --- a/arch/powerpc/perf/callchain.c +++ b/arch/powerpc/perf/callchain.c | |||
@@ -57,7 +57,7 @@ perf_callchain_kernel(struct perf_callchain_entry *entry, struct pt_regs *regs) | |||
57 | 57 | ||
58 | lr = regs->link; | 58 | lr = regs->link; |
59 | sp = regs->gpr[1]; | 59 | sp = regs->gpr[1]; |
60 | perf_callchain_store(entry, regs->nip); | 60 | perf_callchain_store(entry, perf_instruction_pointer(regs)); |
61 | 61 | ||
62 | if (!validate_sp(sp, current, STACK_FRAME_OVERHEAD)) | 62 | if (!validate_sp(sp, current, STACK_FRAME_OVERHEAD)) |
63 | return; | 63 | return; |
@@ -238,7 +238,7 @@ static void perf_callchain_user_64(struct perf_callchain_entry *entry, | |||
238 | struct signal_frame_64 __user *sigframe; | 238 | struct signal_frame_64 __user *sigframe; |
239 | unsigned long __user *fp, *uregs; | 239 | unsigned long __user *fp, *uregs; |
240 | 240 | ||
241 | next_ip = regs->nip; | 241 | next_ip = perf_instruction_pointer(regs); |
242 | lr = regs->link; | 242 | lr = regs->link; |
243 | sp = regs->gpr[1]; | 243 | sp = regs->gpr[1]; |
244 | perf_callchain_store(entry, next_ip); | 244 | perf_callchain_store(entry, next_ip); |
@@ -444,7 +444,7 @@ static void perf_callchain_user_32(struct perf_callchain_entry *entry, | |||
444 | long level = 0; | 444 | long level = 0; |
445 | unsigned int __user *fp, *uregs; | 445 | unsigned int __user *fp, *uregs; |
446 | 446 | ||
447 | next_ip = regs->nip; | 447 | next_ip = perf_instruction_pointer(regs); |
448 | lr = regs->link; | 448 | lr = regs->link; |
449 | sp = regs->gpr[1]; | 449 | sp = regs->gpr[1]; |
450 | perf_callchain_store(entry, next_ip); | 450 | perf_callchain_store(entry, next_ip); |