diff --git a/src/arch/riscv/pagetable_walker.cc b/src/arch/riscv/pagetable_walker.cc index 98180e480c..6ee32008d3 100644 --- a/src/arch/riscv/pagetable_walker.cc +++ b/src/arch/riscv/pagetable_walker.cc @@ -574,8 +574,8 @@ Walker::WalkerState::recvPacket(PacketPtr pkt) */ Addr vaddr = req->getVaddr(); vaddr = Addr(sext(vaddr)); - Addr paddr = walker->tlb->translateWithTLB(vaddr, satp.asid, - satp.mode, mode); + Addr paddr = walker->tlb->hiddenTranslateWithTLB(vaddr, satp.asid, + satp.mode, mode); req->setPaddr(paddr); // do pmp check if any checking condition is met. diff --git a/src/arch/riscv/tlb.cc b/src/arch/riscv/tlb.cc index 6abea0d4d4..d881f9c2a2 100644 --- a/src/arch/riscv/tlb.cc +++ b/src/arch/riscv/tlb.cc @@ -295,10 +295,10 @@ TLB::createPagefault(Addr vaddr, BaseMMU::Mode mode) } Addr -TLB::translateWithTLB(Addr vaddr, uint16_t asid, Addr xmode, - BaseMMU::Mode mode) +TLB::hiddenTranslateWithTLB(Addr vaddr, uint16_t asid, Addr xmode, + BaseMMU::Mode mode) { - TlbEntry *e = lookup(getVPNFromVAddr(vaddr, xmode), asid, mode, false); + TlbEntry *e = lookup(getVPNFromVAddr(vaddr, xmode), asid, mode, true); assert(e != nullptr); return e->paddr << PageShift | (vaddr & mask(e->logBytes)); } diff --git a/src/arch/riscv/tlb.hh b/src/arch/riscv/tlb.hh index 64dc8aa78a..cb9b76e1db 100644 --- a/src/arch/riscv/tlb.hh +++ b/src/arch/riscv/tlb.hh @@ -131,8 +131,8 @@ class TLB : public BaseTLB */ Port *getTableWalkerPort() override; - Addr translateWithTLB(Addr vaddr, uint16_t asid, Addr xmode, - BaseMMU::Mode mode); + Addr hiddenTranslateWithTLB(Addr vaddr, uint16_t asid, Addr xmode, + BaseMMU::Mode mode); Fault translateAtomic(const RequestPtr &req, ThreadContext *tc, BaseMMU::Mode mode) override;