misc: Clean up and complete the gem5<->SystemC-TLM bridge [9/10]
[gem5.git] / util / tlm / sc_master_port.cc
index 5f395026011ae69213dfa49f8467c33e0a85bf3a..63024335925d4e3079b9b9f042c08e47bb19c9ea 100644 (file)
@@ -329,9 +329,15 @@ SCMasterPort::recvTimingResp(PacketPtr pkt)
 
     sc_assert(pkt->isResponse());
 
-    // pay for annotaded transport delays
-    auto delay =
-      sc_core::sc_time::from_value(pkt->payloadDelay + pkt->headerDelay);
+    /*
+     * Pay for annotated transport delays.
+     *
+     * See recvTimingReq in sc_slave_port.cc for a detailed description.
+     */
+    auto delay = sc_core::sc_time::from_value(pkt->payloadDelay);
+    // reset the delays
+    pkt->payloadDelay = 0;
+    pkt->headerDelay = 0;
 
     auto tlmSenderState = dynamic_cast<TlmSenderState*>(pkt->popSenderState());
     sc_assert(tlmSenderState != nullptr);