# Node ID 3147f3a868f79f5094d1cf7b1d2dbd77bf034ac1 # Parent 3d17366c0423a59478ae63d40c8feeea34df218a diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh --- a/src/mem/cache/cache_impl.hh +++ b/src/mem/cache/cache_impl.hh @@ -1739,6 +1739,14 @@ PacketPtr wb_pkt = mshr->getTarget()->pkt; assert(wb_pkt->cmd == MemCmd::Writeback); + // Squash prefetch requests from below on write buffer hits + if (pkt->cmd == MemCmd::HardPFReq) { + DPRINTF(Cache, "Squashing prefetch from lower cache on " + "write buffer hit %#x\n", pkt->getAddr()); + pkt->setPrefetchSquashed(); + return; + } + assert(!pkt->memInhibitAsserted()); pkt->assertMemInhibit(); if (!pkt->needsExclusive()) {