mem: Add missing clean eviction on uncacheable access
authorAndreas Hansson <andreas.hansson@arm.com>
Thu, 30 Jul 2015 07:42:25 +0000 (03:42 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Thu, 30 Jul 2015 07:42:25 +0000 (03:42 -0400)
This patch adds a missing clean eviction, occuring when an uncacheable
access flushes and invalidates an existing block.

src/mem/cache/cache_impl.hh

index 8089d122c5c181e1c0636470bb17568f6a46ea7c..62ab49538fbfd484a0e3155468804e7b0a14409b 100644 (file)
@@ -320,6 +320,8 @@ Cache::access(PacketPtr pkt, CacheBlk *&blk, Cycles &lat,
         if (old_blk && old_blk->isValid()) {
             if (old_blk->isDirty())
                 writebacks.push_back(writebackBlk(old_blk));
+            else
+                writebacks.push_back(cleanEvictBlk(old_blk));
             tags->invalidate(old_blk);
             old_blk->invalidate();
         }