diff options
Diffstat (limited to 'src/mem/dramsim2.cc')
-rw-r--r-- | src/mem/dramsim2.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/mem/dramsim2.cc b/src/mem/dramsim2.cc index cd0f45b23..58227e06a 100644 --- a/src/mem/dramsim2.cc +++ b/src/mem/dramsim2.cc @@ -175,16 +175,18 @@ DRAMSim2::recvFunctional(PacketPtr pkt) bool DRAMSim2::recvTimingReq(PacketPtr pkt) { - // we should never see a new request while in retry - assert(!retryReq); - + // sink inhibited packets without further action if (pkt->memInhibitAsserted()) { - // snooper will supply based on copy of packet - // still target's responsibility to delete packet pendingDelete.reset(pkt); return true; } + // we should not get a new request after committing to retry the + // current one, but unfortunately the CPU violates this rule, so + // simply ignore it for now + if (retryReq) + return false; + // if we cannot accept we need to send a retry once progress can // be made bool can_accept = nbrOutstanding() < wrapper.queueSize(); |