|
@@ -247,7 +247,7 @@ static void perf_callchain_user_64(struct perf_callchain_entry_ctx *entry,
|
|
|
sp = regs->gpr[1];
|
|
sp = regs->gpr[1];
|
|
|
perf_callchain_store(entry, next_ip);
|
|
perf_callchain_store(entry, next_ip);
|
|
|
|
|
|
|
|
- while (entry->entry->nr < entry->max_stack) {
|
|
|
|
|
|
|
+ while (entry->nr < entry->max_stack) {
|
|
|
fp = (unsigned long __user *) sp;
|
|
fp = (unsigned long __user *) sp;
|
|
|
if (!valid_user_sp(sp, 1) || read_user_stack_64(fp, &next_sp))
|
|
if (!valid_user_sp(sp, 1) || read_user_stack_64(fp, &next_sp))
|
|
|
return;
|
|
return;
|
|
@@ -453,7 +453,7 @@ static void perf_callchain_user_32(struct perf_callchain_entry_ctx *entry,
|
|
|
sp = regs->gpr[1];
|
|
sp = regs->gpr[1];
|
|
|
perf_callchain_store(entry, next_ip);
|
|
perf_callchain_store(entry, next_ip);
|
|
|
|
|
|
|
|
- while (entry->entry->nr < entry->max_stack) {
|
|
|
|
|
|
|
+ while (entry->nr < entry->max_stack) {
|
|
|
fp = (unsigned int __user *) (unsigned long) sp;
|
|
fp = (unsigned int __user *) (unsigned long) sp;
|
|
|
if (!valid_user_sp(sp, 0) || read_user_stack_32(fp, &next_sp))
|
|
if (!valid_user_sp(sp, 0) || read_user_stack_32(fp, &next_sp))
|
|
|
return;
|
|
return;
|