]> xenbits.xensource.com Git - xen.git/commitdiff
Revert "xen/riscv: introduce decode_cause() stuff"
authorJan Beulich <jbeulich@suse.com>
Mon, 14 Aug 2023 10:27:43 +0000 (12:27 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 14 Aug 2023 10:27:43 +0000 (12:27 +0200)
This reverts commit 22e71609ad49797b2da141394d07ab5b1c326d54,
which breaks both release and randconfig builds.

xen/arch/riscv/traps.c

index a2b63d579b92973a34475a34bddd3f56eebc5b8d..ccd3593f5a3cb15a8bcb3a1a7afccfeb92415fa4 100644 (file)
@@ -4,92 +4,10 @@
  *
  * RISC-V Trap handlers
  */
-
-#include <xen/lib.h>
-
-#include <asm/csr.h>
-#include <asm/early_printk.h>
 #include <asm/processor.h>
 #include <asm/traps.h>
 
-static const char *decode_trap_cause(unsigned long cause)
-{
-    static const char *const trap_causes[] = {
-        [CAUSE_MISALIGNED_FETCH] = "Instruction Address Misaligned",
-        [CAUSE_FETCH_ACCESS] = "Instruction Access Fault",
-        [CAUSE_ILLEGAL_INSTRUCTION] = "Illegal Instruction",
-        [CAUSE_BREAKPOINT] = "Breakpoint",
-        [CAUSE_MISALIGNED_LOAD] = "Load Address Misaligned",
-        [CAUSE_LOAD_ACCESS] = "Load Access Fault",
-        [CAUSE_MISALIGNED_STORE] = "Store/AMO Address Misaligned",
-        [CAUSE_STORE_ACCESS] = "Store/AMO Access Fault",
-        [CAUSE_USER_ECALL] = "Environment Call from U-Mode",
-        [CAUSE_SUPERVISOR_ECALL] = "Environment Call from S-Mode",
-        [CAUSE_MACHINE_ECALL] = "Environment Call from M-Mode",
-        [CAUSE_FETCH_PAGE_FAULT] = "Instruction Page Fault",
-        [CAUSE_LOAD_PAGE_FAULT] = "Load Page Fault",
-        [CAUSE_STORE_PAGE_FAULT] = "Store/AMO Page Fault",
-        [CAUSE_FETCH_GUEST_PAGE_FAULT] = "Instruction Guest Page Fault",
-        [CAUSE_LOAD_GUEST_PAGE_FAULT] = "Load Guest Page Fault",
-        [CAUSE_VIRTUAL_INST_FAULT] = "Virtualized Instruction Fault",
-        [CAUSE_STORE_GUEST_PAGE_FAULT] = "Guest Store/AMO Page Fault",
-    };
-
-    if ( cause < ARRAY_SIZE(trap_causes) && trap_causes[cause] )
-        return trap_causes[cause];
-    return "UNKNOWN";
-}
-
-static const char *decode_reserved_interrupt_cause(unsigned long irq_cause)
-{
-    switch ( irq_cause )
-    {
-    case IRQ_M_SOFT:
-        return "M-mode Software Interrupt";
-    case IRQ_M_TIMER:
-        return "M-mode Timer Interrupt";
-    case IRQ_M_EXT:
-        return "M-mode External Interrupt";
-    default:
-        return "UNKNOWN IRQ type";
-    }
-}
-
-static const char *decode_interrupt_cause(unsigned long cause)
-{
-    unsigned long irq_cause = cause & ~CAUSE_IRQ_FLAG;
-
-    switch ( irq_cause )
-    {
-    case IRQ_S_SOFT:
-        return "Supervisor Software Interrupt";
-    case IRQ_S_TIMER:
-        return "Supervisor Timer Interrupt";
-    case IRQ_S_EXT:
-        return "Supervisor External Interrupt";
-    default:
-        return decode_reserved_interrupt_cause(irq_cause);
-    }
-}
-
-static const char *decode_cause(unsigned long cause)
-{
-    if ( cause & CAUSE_IRQ_FLAG )
-        return decode_interrupt_cause(cause);
-
-    return decode_trap_cause(cause);
-}
-
-static void do_unexpected_trap(const struct cpu_user_regs *regs)
-{
-    unsigned long cause = csr_read(CSR_SCAUSE);
-
-    printk("Unhandled exception: %s\n", decode_cause(cause));
-
-    die();
-}
-
 void do_trap(struct cpu_user_regs *cpu_regs)
 {
-    do_unexpected_trap(cpu_regs);
+    die();
 }