diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh index e9a40a7419..b29d52f783 100644 --- a/src/mem/cache/cache_impl.hh +++ b/src/mem/cache/cache_impl.hh @@ -514,18 +514,18 @@ Cache::timingAccess(PacketPtr pkt) bool needsResponse = pkt->needsResponse(); if (satisfied) { + if (prefetcher && (prefetchOnAccess || (blk && blk->wasPrefetched()))) { + if (blk) + blk->status &= ~BlkHWPrefetched; + next_pf_time = prefetcher->notify(pkt, time); + } + if (needsResponse) { pkt->makeTimingResponse(); cpuSidePort->respond(pkt, curTick()+lat); } else { delete pkt; } - - if (prefetcher && (prefetchOnAccess || (blk && blk->wasPrefetched()))) { - if (blk) - blk->status &= ~BlkHWPrefetched; - next_pf_time = prefetcher->notify(pkt, time); - } } else { // miss