If all the targets aren't satisfied, reinitialize the packet.
authorRon Dreslinski <rdreslin@umich.edu>
Tue, 14 Nov 2006 15:09:13 +0000 (10:09 -0500)
committerRon Dreslinski <rdreslin@umich.edu>
Tue, 14 Nov 2006 15:09:13 +0000 (10:09 -0500)
--HG--
extra : convert_revision : 5b0a977a162a1b881b97a3185fb386cc76632a4a

src/mem/cache/miss/miss_queue.cc

index fe467a8ea07b5797d33f8c148fbc6747a3b4a9e1..3c45862725024bd236012f891008922c8fee649b 100644 (file)
@@ -612,6 +612,8 @@ MissQueue::handleResponse(PacketPtr &pkt, Tick time)
         if (mshr->hasTargets()) {
             // Didn't satisfy all the targets, need to resend
             Packet::Command cmd = mshr->getTarget()->cmd;
+            mshr->pkt->setDest(Packet::Broadcast);
+            mshr->pkt->result = Packet::Unknown;
             mq.markPending(mshr, cmd);
             mshr->order = order++;
             cache->setMasterRequest(Request_MSHR, time);