summaryrefslogtreecommitdiff
path: root/src/mem/bus.cc
diff options
context:
space:
mode:
authorSteve Reinhardt <steve.reinhardt@amd.com>2009-10-03 18:07:39 -0700
committerSteve Reinhardt <steve.reinhardt@amd.com>2009-10-03 18:07:39 -0700
commit8a761c44af607c1a05642d32cbaa6b97106e6b7d (patch)
treeef3d1973d004ea7d08c667c178304dd5898281d9 /src/mem/bus.cc
parent44ceb80c2dd1c4991357292ca27809b5012b9556 (diff)
downloadgem5-8a761c44af607c1a05642d32cbaa6b97106e6b7d.tar.xz
bus: add assertion to catch illegal retry
on mem-inhibited transaction.
Diffstat (limited to 'src/mem/bus.cc')
-rw-r--r--src/mem/bus.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mem/bus.cc b/src/mem/bus.cc
index 001c37a24..cac08d1a8 100644
--- a/src/mem/bus.cc
+++ b/src/mem/bus.cc
@@ -244,6 +244,9 @@ Bus::recvTiming(PacketPtr pkt)
// Packet not successfully sent. Leave or put it on the retry list.
// illegal to block responses... can lead to deadlock
assert(!pkt->isResponse());
+ // It's also illegal to force a transaction to retry after
+ // someone else has committed to respond.
+ assert(!pkt->memInhibitAsserted());
DPRINTF(Bus, "recvTiming: src %d dst %d %s 0x%x TGT RETRY\n",
src, pkt->getDest(), pkt->cmdString(), pkt->getAddr());
addToRetryList(src_port);