Browse Source

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
pull/1347/head
rbuchner 3 years ago
parent
commit
bd67576609
  1. 2
      riscv/mmu.cc

2
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) {

Loading…
Cancel
Save