From bd675766091549e4fc1607f6106b0dce7dc03d21 Mon Sep 17 00:00:00 2001 From: rbuchner Date: Mon, 24 Apr 2023 16:59:34 -0700 Subject: Use access_info.effective_virt when failed mmio_load (i.e. device detects access fault) Fixes case 3 from https://github.com/riscv-software-src/riscv-isa-sim/issues/872 --- riscv/mmu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/riscv/mmu.cc b/riscv/mmu.cc index acbf652..db6c31e 100644 --- a/riscv/mmu.cc +++ b/riscv/mmu.cc @@ -214,7 +214,7 @@ void mmu_t::load_slow_path_intrapage(reg_t len, uint8_t* bytes, mem_access_info_ refill_tlb(addr, paddr, host_addr, LOAD); } else if (!mmio_load(paddr, len, bytes)) { - throw trap_load_access_fault((proc) ? proc->state.v : false, addr, 0, 0); + throw trap_load_access_fault(access_info.effective_virt, addr, 0, 0); } if (access_info.flags.lr) { -- cgit v1.1