[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 |