// dirty one.
Packet snoop_pkt(tgt_pkt, true, false);
snoop_pkt.setExpressSnoop();
+ // We are sending this packet upwards, but if it hits we will
+ // get a snoop response that we end up treating just like a
+ // normal response, hence it needs the MSHR as its sender
+ // state
snoop_pkt.senderState = mshr;
cpuSidePort->sendTimingSnoopReq(&snoop_pkt);
}
assert(pkt != NULL);
- pkt->senderState = mshr;
+ // play it safe and append (rather than set) the sender state, as
+ // forwarded packets may already have existing state
+ pkt->pushSenderState(mshr);
return pkt;
}