mem: Fix scheduling bug in SimpleMemory
This patch ensures that a dequeue event is not scheduled if the memory controller is waiting for a retry already. Without this check it is possible for the controller to attempt sending something whilst already having one packet that is in retry, thus causing the bus to have an assertion failure.
This commit is contained in:
parent
cecb951f60
commit
9aa939891f
1 changed files with 1 additions and 1 deletions
|
@ -155,7 +155,7 @@ SimpleMemory::recvTimingReq(PacketPtr pkt)
|
|||
// the end even if the latency suggests it should be sent
|
||||
// before the packet(s) before it
|
||||
packetQueue.push_back(DeferredPacket(pkt, curTick() + getLatency()));
|
||||
if (!dequeueEvent.scheduled())
|
||||
if (!retryResp && !dequeueEvent.scheduled())
|
||||
schedule(dequeueEvent, packetQueue.back().tick);
|
||||
} else {
|
||||
pendingDelete.push_back(pkt);
|
||||
|
|
Loading…
Reference in a new issue