diff options
Diffstat (limited to 'arch/riscv/cpu/interrupts.c')
-rw-r--r-- | arch/riscv/cpu/interrupts.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/riscv/cpu/interrupts.c b/arch/riscv/cpu/interrupts.c index 0e8951b619..0bb56d441d 100644 --- a/arch/riscv/cpu/interrupts.c +++ b/arch/riscv/cpu/interrupts.c @@ -14,6 +14,7 @@ #include <asm/ptrace.h> #include <asm/irq.h> #include <asm/csr.h> +#include <asm/unwind.h> #include <abort.h> #include <pbl.h> @@ -81,6 +82,8 @@ static void report_trap(const struct pt_regs *regs) regs->epc, regs->ra, regs->badaddr); show_regs(regs); + + unwind_backtrace(regs); } @@ -122,7 +125,7 @@ unsigned long handle_trap(struct pt_regs *regs) goto skip; if (regs->cause == 2) { /* illegal instruction */ - switch(*(unsigned long *)regs->epc) { + switch(*(u32 *)regs->epc) { case 0x0000100f: /* fence.i */ goto skip; default: |