summaryrefslogtreecommitdiffstats
path: root/arch/riscv/cpu/interrupts.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/riscv/cpu/interrupts.c')
-rw-r--r--arch/riscv/cpu/interrupts.c5
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: