summaryrefslogtreecommitdiff
path: root/src/mem/bridge.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/bridge.hh')
-rw-r--r--src/mem/bridge.hh8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mem/bridge.hh b/src/mem/bridge.hh
index 82001948e..df48eb8c5 100644
--- a/src/mem/bridge.hh
+++ b/src/mem/bridge.hh
@@ -78,17 +78,19 @@ class Bridge : public MemObject
public:
Tick ready;
PacketPtr pkt;
+ bool nackedHere;
Packet::SenderState *origSenderState;
short origSrc;
bool expectResponse;
PacketBuffer(PacketPtr _pkt, Tick t, bool nack = false)
- : ready(t), pkt(_pkt),
- origSenderState(_pkt->senderState), origSrc(_pkt->getSrc()),
+ : ready(t), pkt(_pkt), nackedHere(nack),
+ origSenderState(_pkt->senderState),
+ origSrc(nack ? _pkt->getDest() : _pkt->getSrc() ),
expectResponse(_pkt->needsResponse() && !nack)
{
- if (!pkt->isResponse() && !nack && !pkt->wasNacked())
+ if (!pkt->isResponse() && !nack)
pkt->senderState = this;
}