summaryrefslogtreecommitdiff
path: root/src/mem/cache/cache_impl.hh
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2007-07-03 00:40:31 -0400
committerSteve Reinhardt <stever@eecs.umich.edu>2007-07-03 00:40:31 -0400
commit4738649e32d06d92e6792b7ce80fcbd05627fc06 (patch)
tree1a47aa68b3f08f979e497ed6972667a2995954e6 /src/mem/cache/cache_impl.hh
parent4b68652c87f61fe0a2fd4040b79130de0846df85 (diff)
downloadgem5-4738649e32d06d92e6792b7ce80fcbd05627fc06.tar.xz
Delete packets when we're done with them.
--HG-- extra : convert_revision : b8894d26e1ca7a6c9b736500accdaa53bfb09558
Diffstat (limited to 'src/mem/cache/cache_impl.hh')
-rw-r--r--src/mem/cache/cache_impl.hh5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh
index 0d76b6bec..320e0be81 100644
--- a/src/mem/cache/cache_impl.hh
+++ b/src/mem/cache/cache_impl.hh
@@ -705,6 +705,8 @@ Cache<TagStore>::handleResponse(PacketPtr pkt)
deallocate = true;
}
+ delete pkt;
+
if (deallocate) {
mq->deallocate(mshr);
if (wasFull && !mq->isFull()) {
@@ -1242,6 +1244,9 @@ Cache<TagStore>::MemSidePort::sendPacket()
waitingOnRetry = !success;
if (waitingOnRetry) {
DPRINTF(CachePort, "now waiting on a retry\n");
+ if (!mshr->isSimpleForward()) {
+ delete pkt;
+ }
} else {
myCache()->markInService(mshr);
}