]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
Revert "arm64: fix infinite stacktrace"
authorWill Deacon <will.deacon@arm.com>
Thu, 12 Jul 2018 10:37:40 +0000 (11:37 +0100)
committerWill Deacon <will.deacon@arm.com>
Thu, 12 Jul 2018 10:37:40 +0000 (11:37 +0100)
This reverts commit 7e7df71fd57ff2894d96abb0080922bf39460a79.

When unwinding out of the IRQ stack and onto the interrupted EL1 stack,
we cannot rely on the frame pointer being strictly increasing, as this
could terminate the backtrace early depending on how the stacks have
been allocated.

Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/stacktrace.c

index e160ca123da377aec69449d183ae48b1552c9fdc..d5718a060672e1696618904c8844447daa042007 100644 (file)
@@ -56,9 +56,6 @@ int notrace unwind_frame(struct task_struct *tsk, struct stackframe *frame)
        frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp));
        frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp + 8));
 
-       if (frame->fp <= fp)
-               return -EINVAL;
-
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
        if (tsk->ret_stack &&
                        (frame->pc == (unsigned long)return_to_handler)) {