summaryrefslogtreecommitdiff
path: root/src/mem/cache/miss
diff options
context:
space:
mode:
authorRon Dreslinski <rdreslin@umich.edu>2006-10-10 17:10:56 -0400
committerRon Dreslinski <rdreslin@umich.edu>2006-10-10 17:10:56 -0400
commit995146ead7bcf03b80bdea6281fa4a225ad48b72 (patch)
treeee9c52e65bacc2a8f5969a5759840821d8dade95 /src/mem/cache/miss
parent9e008d73d5a6ff3d0ead5217235f7deaf80a1fe4 (diff)
downloadgem5-995146ead7bcf03b80bdea6281fa4a225ad48b72.tar.xz
Fix some more mem leaks, still some left
Update retry mechanism src/mem/cache/base_cache.cc: Rework the retry mechanism src/mem/cache/base_cache.hh: Rework the retry mechanism Try to fix memory bug src/mem/cache/cache_impl.hh: Rework upgrades to not be blocked by slave src/mem/cache/miss/mshr_queue.cc: Fix mem leak on writebacks --HG-- extra : convert_revision : 3cec234ee441edf398ec8d0f51a0c5d7ada1e2be
Diffstat (limited to 'src/mem/cache/miss')
-rw-r--r--src/mem/cache/miss/mshr_queue.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mem/cache/miss/mshr_queue.cc b/src/mem/cache/miss/mshr_queue.cc
index 78897c8fb..1876a8987 100644
--- a/src/mem/cache/miss/mshr_queue.cc
+++ b/src/mem/cache/miss/mshr_queue.cc
@@ -215,6 +215,11 @@ MSHRQueue::markInService(MSHR* mshr)
//assert(mshr == pendingList.front());
if (!(mshr->pkt->needsResponse() || mshr->pkt->cmd == Packet::UpgradeReq)) {
assert(mshr->getNumTargets() == 0);
+ if ((mshr->pkt->flags & SATISFIED) && (mshr->pkt->cmd == Packet::Writeback)) {
+ //Writeback hit, so delete it
+ //otherwise the consumer will delete it
+ delete mshr->pkt->req;
+ }
deallocate(mshr);
return;
}