diff options
Diffstat (limited to 'src/mem/addr_mapper.cc')
-rw-r--r-- | src/mem/addr_mapper.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mem/addr_mapper.cc b/src/mem/addr_mapper.cc index 06237745b..2f0020576 100644 --- a/src/mem/addr_mapper.cc +++ b/src/mem/addr_mapper.cc @@ -128,9 +128,13 @@ AddrMapper::recvTimingReq(PacketPtr pkt) // packets) bool successful = masterPort.sendTimingReq(pkt); - // If not successful, restore the sender state - if (!successful && needsResponse) { - delete pkt->popSenderState(); + // If not successful, restore the address and sender state + if (!successful) { + pkt->setAddr(orig_addr); + + if (needsResponse) { + delete pkt->popSenderState(); + } } return successful; |