Call compare and Swap on the target, not the response.
authorRon Dreslinski <rdreslin@umich.edu>
Wed, 28 Mar 2007 19:38:11 +0000 (14:38 -0500)
committerRon Dreslinski <rdreslin@umich.edu>
Wed, 28 Mar 2007 19:38:11 +0000 (14:38 -0500)
--HG--
extra : convert_revision : 522805fe2c9abaa5ba0d9262ad98f841d90f6452

src/mem/cache/cache_impl.hh

index ca965859e390b92ea9e5c823c1a8b35eec90eab1..ec0ef1be45b8b03c637b1fc820f2547f9e3f7a67 100644 (file)
@@ -299,7 +299,7 @@ Cache<TagStore,Coherence>::handleFill(BlkType *blk, PacketPtr &pkt,
                            target->getPtr<uint8_t>(), target->getSize());
                 }
             } else if (target->isReadWrite()) {
-                cmpAndSwap(blk, pkt);
+                cmpAndSwap(blk, target);
             } else {
                 if (pkt->req->isLocked()) {
                     blk->trackLoadLocked(pkt->req);
@@ -390,7 +390,7 @@ Cache<TagStore,Coherence>::handleFill(BlkType *blk, MSHR * mshr,
                            target->getPtr<uint8_t>(), target->getSize());
                 }
             } else if (target->isReadWrite()) {
-                cmpAndSwap(blk, pkt);
+                cmpAndSwap(blk, target);
             } else {
                 if (target->req->isLocked()) {
                     blk->trackLoadLocked(target->req);