diff --git a/opensbi/lib/sbi/sbi_illegal_insn.c b/opensbi/lib/sbi/sbi_illegal_insn.c index fb67c28d23..45e7ce9399 100644 --- a/opensbi/lib/sbi/sbi_illegal_insn.c +++ b/opensbi/lib/sbi/sbi_illegal_insn.c @@ -37,6 +37,7 @@ static int misc_mem_opcode_insn(ulong insn, struct sbi_trap_regs *regs) /* Errata workaround: emulate `fence.tso` as `fence rw, rw`. */ if ((insn & INSN_MASK_FENCE_TSO) == INSN_MATCH_FENCE_TSO) { smp_mb(); + regs->mepc += 4; return 0; }