summaryrefslogtreecommitdiff
path: root/src/dev/x86/intdev.cc
diff options
context:
space:
mode:
authorJoel Hestness <jthestness@gmail.com>2015-09-29 09:28:26 -0500
committerJoel Hestness <jthestness@gmail.com>2015-09-29 09:28:26 -0500
commit0ecaab4ea8039f707a95f5e3efcc68591dbcd407 (patch)
treee5d0b303b365cbfac32b83ceb4af333ca27b49ce /src/dev/x86/intdev.cc
parentb80024ee7dc1dd424ce2dd907e7b7e3a902e0bb2 (diff)
downloadgem5-0ecaab4ea8039f707a95f5e3efcc68591dbcd407.tar.xz
arch, x86: Delete packet in IntDevice::recvResponse
IntDevice::recvResponse is called from two places in current mainline: (1) the short circuit path of X86ISA::IntDevice::IntMasterPort::sendMessage for atomic mode, and (2) the full request->response path to and from the x86 interrupts device (finally called from MessageMasterPort::recvTimingResp). In the former case, the packet was deleted correctly, but in the latter case, the packet and request leak. To fix the leak, move request and packet deletion into IntDevice inherited class implementations of recvResponse.
Diffstat (limited to 'src/dev/x86/intdev.cc')
-rw-r--r--src/dev/x86/intdev.cc2
1 files changed, 0 insertions, 2 deletions
diff --git a/src/dev/x86/intdev.cc b/src/dev/x86/intdev.cc
index 883073302..a35f76b5f 100644
--- a/src/dev/x86/intdev.cc
+++ b/src/dev/x86/intdev.cc
@@ -59,8 +59,6 @@ X86ISA::IntDevice::IntMasterPort::sendMessage(ApicList apics,
assert(pkt->isResponse());
// also ignore the latency in handling the response
recvResponse(pkt);
- delete pkt->req;
- delete pkt;
}
}
}