aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/sbi/sbi_trap.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/sbi/sbi_trap.c b/lib/sbi/sbi_trap.c
index 5781fea..8d20e04 100644
--- a/lib/sbi/sbi_trap.c
+++ b/lib/sbi/sbi_trap.c
@@ -259,11 +259,10 @@ struct sbi_trap_regs *sbi_trap_handler(struct sbi_trap_regs *regs)
msg = "ecall handler failed";
break;
case CAUSE_LOAD_ACCESS:
- sbi_pmu_ctr_incr_fw(SBI_PMU_FW_ACCESS_LOAD);
- break;
case CAUSE_STORE_ACCESS:
- sbi_pmu_ctr_incr_fw(SBI_PMU_FW_ACCESS_STORE);
- break;
+ sbi_pmu_ctr_incr_fw(mcause == CAUSE_LOAD_ACCESS ?
+ SBI_PMU_FW_ACCESS_LOAD : SBI_PMU_FW_ACCESS_STORE);
+ /* fallthrough */
default:
/* If the trap came from S or U mode, redirect it there */
trap.epc = regs->mepc;