systemc: Bugfix in TlmToGem5Bridge (#615)

In handleBeginReq, a timing request is sent. If the receiver rejects the
request, the bridge will save the pointers of the original transaction
object and the generated gem5 packet. After a recvReqRetry-signal and a
successful timing request, the variable for transaction object pointer,
but not for the gem5 packet, is set to nullptr. When a new transaction
with the phase BEGIN_REQ arrives, the assertion in handleBeginReq that
there is no pending gem5 packet fails.
Therefore, the variable pendingPacket has to be set to nullptr in
recvReqRetry after a successful timing request too.

Change-Id: I876f8f88e1893e8fdfa3441ed2ae5ddc39cef2ce

Co-authored-by: Robert Hauser <robert.hauser@uni-rostock.de>
This commit is contained in:
Robert Hauser
2023-12-02 01:18:51 +01:00
committed by GitHub
parent 9d108826b0
commit 84efeb976a

View File

@@ -540,6 +540,7 @@ TlmToGem5Bridge<BITWIDTH>::recvReqRetry()
trans.release();
pendingRequest = nullptr;
pendingPacket = nullptr;
}
}