summaryrefslogtreecommitdiff
path: root/src/mem/cache
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2015-07-30 03:42:25 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2015-07-30 03:42:25 -0400
commit6fac40ceb03d4ab5b13affac3927cd876947cc78 (patch)
treea1121688947f20e3720a94f1b7e3e69fe67af9f5 /src/mem/cache
parent540e59fd7088fef6cc564babf8c728487b82afd5 (diff)
downloadgem5-6fac40ceb03d4ab5b13affac3927cd876947cc78.tar.xz
mem: Add missing clean eviction on uncacheable access
This patch adds a missing clean eviction, occuring when an uncacheable access flushes and invalidates an existing block.
Diffstat (limited to 'src/mem/cache')
-rw-r--r--src/mem/cache/cache_impl.hh2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh
index 8089d122c..62ab49538 100644
--- a/src/mem/cache/cache_impl.hh
+++ b/src/mem/cache/cache_impl.hh
@@ -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();
}