|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v1 09/14] xen/riscv: introduce do_unexpected_trap()
The patch introduces the function the purpose of which is to print
a cause of an exception and call "wfi" instruction.
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
---
xen/arch/riscv/traps.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/xen/arch/riscv/traps.c b/xen/arch/riscv/traps.c
index dd64f053a5..fc25138a4b 100644
--- a/xen/arch/riscv/traps.c
+++ b/xen/arch/riscv/traps.c
@@ -95,7 +95,19 @@ const char *decode_cause(unsigned long cause)
return decode_trap_cause(cause);
}
-void __handle_exception(struct cpu_user_regs *cpu_regs)
+static void do_unexpected_trap(const struct cpu_user_regs *regs)
{
+ unsigned long cause = csr_read(CSR_SCAUSE);
+
+ early_printk("Unhandled exception: ");
+ early_printk(decode_cause(cause));
+ early_printk("\n");
+
+ // kind of die...
wait_for_interrupt();
}
+
+void __handle_exception(struct cpu_user_regs *cpu_regs)
+{
+ do_unexpected_trap(cpu_regs);
+}
--
2.39.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |