diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mem/cache/base.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mem/cache/base.cc b/src/mem/cache/base.cc index 7bb0e0fdb..6f3914ccd 100644 --- a/src/mem/cache/base.cc +++ b/src/mem/cache/base.cc @@ -1305,9 +1305,13 @@ BaseCache::allocateBlock(const PacketPtr pkt, PacketList &writebacks) void BaseCache::invalidateBlock(CacheBlk *blk) { - if (blk != tempBlock) + // If handling a block present in the Tags, let it do its invalidation + // process, which will update stats and invalidate the block itself + if (blk != tempBlock) { tags->invalidate(blk); - blk->invalidate(); + } else { + tempBlock->invalidate(); + } } void |