477c477,478
< (pkt->isRead() || pkt->cmd == MemCmd::UpgradeResp);
---
> (pkt->isRead() || pkt->cmd == MemCmd::UpgradeResp ||
> mshr->wasWholeLineWrite);
478a480,483
> // make sure that if the mshr was due to a whole line write then
> // the response is an invalidation
> assert(!mshr->wasWholeLineWrite || pkt->isInvalidate());
>
1124c1129
< assert(pkt->isResponse() || pkt->cmd == MemCmd::WriteLineReq);
---
> assert(pkt->isResponse());
1137c1142
< assert(pkt->hasData());
---
> assert(pkt->hasData() || pkt->cmd == MemCmd::InvalidateResp);
1139,1143d1143
< // only read responses and write-line requests have data;
< // note that we don't write the data here for write-line - that
< // happens in the subsequent call to satisfyRequest
< assert(pkt->isRead() || pkt->cmd == MemCmd::WriteLineReq);
<
1176c1176
< if (pkt->cmd == MemCmd::WriteLineReq) {
---
> if (pkt->cmd == MemCmd::InvalidateResp) {
1468c1468,1469
< PacketPtr pkt = createMissPacket(tgt_pkt, blk, mshr->needsWritable());
---
> PacketPtr pkt = createMissPacket(tgt_pkt, blk, mshr->needsWritable(),
> mshr->isWholeLineWrite());