mem: Ensure that InvalidateReq is not forwarded as ReadExReq
This patch fixes an issue where an InvalidationReq only traversed one level of the cache hierarchy, and was subsequently turned into a ReadExReq due to it needing writable, and the command not being checked for explicitly.
This commit is contained in:
parent
496a8c6c92
commit
7958f34797
1 changed files with 2 additions and 1 deletions
3
src/mem/cache/cache.cc
vendored
3
src/mem/cache/cache.cc
vendored
|
@ -966,7 +966,8 @@ Cache::getBusPacket(PacketPtr cpu_pkt, CacheBlk *blk,
|
|||
// where the determination the StoreCond fails is delayed due to
|
||||
// all caches not being on the same local bus.
|
||||
cmd = MemCmd::SCUpgradeFailReq;
|
||||
} else if (cpu_pkt->cmd == MemCmd::WriteLineReq) {
|
||||
} else if (cpu_pkt->cmd == MemCmd::WriteLineReq ||
|
||||
cpu_pkt->cmd == MemCmd::InvalidateReq) {
|
||||
// forward as invalidate to all other caches, this gives us
|
||||
// the line in Exclusive state, and invalidates all other
|
||||
// copies
|
||||
|
|
Loading…
Reference in a new issue