diff options
Diffstat (limited to 'src/mem/cache/cache.cc')
-rw-r--r-- | src/mem/cache/cache.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mem/cache/cache.cc b/src/mem/cache/cache.cc index d38680eb8..fb0eb9d05 100644 --- a/src/mem/cache/cache.cc +++ b/src/mem/cache/cache.cc @@ -623,8 +623,9 @@ Cache::handleAtomicReqMiss(PacketPtr pkt, CacheBlk *&blk, // write-line request to the cache that promoted // the write to a whole line - blk = handleFill(bus_pkt, blk, writebacks, - allocOnFill(pkt->cmd)); + const bool allocate = allocOnFill(pkt->cmd) && + (!writeAllocator || writeAllocator->allocate()); + blk = handleFill(bus_pkt, blk, writebacks, allocate); assert(blk != NULL); is_invalidate = false; satisfyRequest(pkt, blk); |