diff -r 2729b7251e6a -r 358ec35474dc src/mem/cache/cache_impl.hh --- a/src/mem/cache/cache_impl.hh Tue Aug 09 14:34:32 2011 -0500 +++ b/src/mem/cache/cache_impl.hh Tue Aug 09 14:36:33 2011 -0500 @@ -514,18 +514,18 @@ 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