powerpc/perf: Cap 64bit userspace backtraces to PERF_MAX_STACK_DEPTH
authorAnton Blanchard <anton@samba.org>
Mon, 13 Apr 2015 21:51:03 +0000 (07:51 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 14 Apr 2015 06:21:16 +0000 (16:21 +1000)
We cap 32bit userspace backtraces to PERF_MAX_STACK_DEPTH
(currently 127), but we forgot to do the same for 64bit backtraces.

Cc: stable@vger.kernel.org
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/perf/callchain.c

index 2396dda..ead5535 100644 (file)
@@ -243,7 +243,7 @@ static void perf_callchain_user_64(struct perf_callchain_entry *entry,
        sp = regs->gpr[1];
        perf_callchain_store(entry, next_ip);
 
-       for (;;) {
+       while (entry->nr < PERF_MAX_STACK_DEPTH) {
                fp = (unsigned long __user *) sp;
                if (!valid_user_sp(sp, 1) || read_user_stack_64(fp, &next_sp))
                        return;