summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mem/addr_mapper.cc10
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;