mem-cache: Fix double block invalidation
Block was being invalidated twice when not a tempBlock. Make explicit that the else case is only to be applied when handling the tempBlock, as otherwise the Tags should be taking care of the invalidation. Change-Id: Ie7603fdbe156c54e94bbdc83541b55e66f8d250f Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/13895 Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
This commit is contained in:
committed by
Daniel Carvalho
parent
33dc762d67
commit
49798e0efa
8
src/mem/cache/base.cc
vendored
8
src/mem/cache/base.cc
vendored
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user