aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/perf/callchain.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/perf/callchain.c')
-rw-r--r--arch/powerpc/perf/callchain.c6
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);