|
@@ -243,7 +243,7 @@ static void perf_callchain_user_64(struct perf_callchain_entry *entry,
|
|
sp = regs->gpr[1];
|
|
sp = regs->gpr[1];
|
|
perf_callchain_store(entry, next_ip);
|
|
perf_callchain_store(entry, next_ip);
|
|
|
|
|
|
- for (;;) {
|
|
|
|
|
|
+ while (entry->nr < PERF_MAX_STACK_DEPTH) {
|
|
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;
|