arm64: Modify stack trace and dump for use with irq_stack
This patch allows unwind_frame() to traverse from interrupt stack to task stack correctly. It requires data from a dummy stack frame, created during irq_stack_entry(), added by a later patch. A similar approach is taken to modify dump_backtrace(), which expects to find struct pt_regs underneath any call to functions marked __exception. When on an irq_stack, the struct pt_regs is stored on the old task stack, the location of which is stored in the dummy stack frame. Reviewed-by:Catalin Marinas <catalin.marinas@arm.com> Signed-off-by:
AKASHI Takahiro <takahiro.akashi@linaro.org> [james.morse: merged two patches, reworked for per_cpu irq_stacks, and no alignment guarantees, added irq_stack definitions] Signed-off-by:
James Morse <james.morse@arm.com> Signed-off-by:
Will Deacon <will.deacon@arm.com>
Showing
- arch/arm64/include/asm/irq.h 32 additions, 0 deletionsarch/arm64/include/asm/irq.h
- arch/arm64/kernel/irq.c 3 additions, 0 deletionsarch/arm64/kernel/irq.c
- arch/arm64/kernel/stacktrace.c 27 additions, 2 deletionsarch/arm64/kernel/stacktrace.c
- arch/arm64/kernel/traps.c 13 additions, 1 deletionarch/arm64/kernel/traps.c
Loading
Please register or sign in to comment