Make sure to propogate sendFunctional calls with functional not atomic.
authorRon Dreslinski <rdreslin@umich.edu>
Mon, 9 Oct 2006 00:47:50 +0000 (20:47 -0400)
committerRon Dreslinski <rdreslin@umich.edu>
Mon, 9 Oct 2006 00:47:50 +0000 (20:47 -0400)
src/mem/cache/cache_impl.hh:
    Fix a error case by putting a panic in.
    Make sure to propogate sendFunctional calls with functional not atomic.

--HG--
extra : convert_revision : 05d03f729a40cfa3ecb68bcba172eb560b24e897

src/mem/cache/cache_impl.hh

index 1f03065b6c2c453bfc6d69d4b2740ff4dcb35058..9ce8f515dc305e077fcb65d36e3779349c6d6b28 100644 (file)
@@ -603,7 +603,7 @@ Cache<TagStore,Buffering,Coherence>::probe(Packet * &pkt, bool update, CachePort
             // update the cache state and statistics
             if (mshr || !writes.empty()){
                 // Can't handle it, return pktuest unsatisfied.
-                return 0;
+                panic("Atomic access ran into outstanding MSHR's or WB's!");
             }
             if (!pkt->req->isUncacheable()) {
                 // Fetch the cache block to fill
@@ -655,7 +655,7 @@ Cache<TagStore,Buffering,Coherence>::probe(Packet * &pkt, bool update, CachePort
             hits[pkt->cmdToIndex()][0/*pkt->req->getThreadNum()*/]++;
         } else if (pkt->isWrite()) {
             // Still need to change data in all locations.
-            return otherSidePort->sendAtomic(pkt);
+            otherSidePort->sendFunctional(pkt);
         }
         return curTick + lat;
     }