diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2015-07-30 03:42:25 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2015-07-30 03:42:25 -0400 |
commit | 6fac40ceb03d4ab5b13affac3927cd876947cc78 (patch) | |
tree | a1121688947f20e3720a94f1b7e3e69fe67af9f5 /src/mem | |
parent | 540e59fd7088fef6cc564babf8c728487b82afd5 (diff) | |
download | gem5-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')
-rw-r--r-- | src/mem/cache/cache_impl.hh | 2 |
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(); } |