summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dev/alpha/backdoor.cc1
-rw-r--r--src/dev/alpha/tsunami_cchip.cc1
-rw-r--r--src/dev/alpha/tsunami_io.cc2
-rw-r--r--src/dev/alpha/tsunami_pchip.cc1
-rw-r--r--src/dev/arm/a9scu.cc1
-rw-r--r--src/dev/arm/amba_device.cc2
-rw-r--r--src/dev/arm/amba_fake.cc2
-rw-r--r--src/dev/arm/energy_ctrl.cc1
-rw-r--r--src/dev/arm/gic_pl390.cc6
-rw-r--r--src/dev/arm/hdlcd.cc2
-rw-r--r--src/dev/arm/kmi.cc2
-rw-r--r--src/dev/arm/pl011.cc1
-rw-r--r--src/dev/arm/pl111.cc1
-rw-r--r--src/dev/arm/rtc_pl031.cc2
-rw-r--r--src/dev/arm/rv_ctrl.cc1
-rw-r--r--src/dev/arm/timer_cpulocal.cc2
-rw-r--r--src/dev/arm/timer_sp804.cc2
-rw-r--r--src/dev/arm/vgic.cc4
-rw-r--r--src/dev/copy_engine.cc2
-rw-r--r--src/dev/i8254xGBe.cc2
-rw-r--r--src/dev/ide_ctrl.cc3
-rw-r--r--src/dev/isa_fake.cc1
-rwxr-xr-xsrc/dev/mips/malta_cchip.cc1
-rwxr-xr-xsrc/dev/mips/malta_pchip.cc1
-rw-r--r--src/dev/ns_gige.cc2
-rw-r--r--src/dev/pciconfigall.cc3
-rw-r--r--src/dev/pcidev.cc4
-rw-r--r--src/dev/sinic.cc2
-rw-r--r--src/dev/sparc/dtod.cc1
-rw-r--r--src/dev/uart8250.cc1
-rw-r--r--src/dev/virtio/base.cc2
-rw-r--r--src/dev/virtio/pci.cc4
-rw-r--r--src/mem/cache/cache_impl.hh2
-rw-r--r--src/mem/packet.cc1
-rw-r--r--src/mem/packet.hh12
35 files changed, 6 insertions, 72 deletions
diff --git a/src/dev/alpha/backdoor.cc b/src/dev/alpha/backdoor.cc
index dc0e8e49f..598620893 100644
--- a/src/dev/alpha/backdoor.cc
+++ b/src/dev/alpha/backdoor.cc
@@ -111,7 +111,6 @@ AlphaBackdoor::read(PacketPtr pkt)
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
pkt->makeAtomicResponse();
switch (pkt->getSize())
diff --git a/src/dev/alpha/tsunami_cchip.cc b/src/dev/alpha/tsunami_cchip.cc
index 203325e75..7416de403 100644
--- a/src/dev/alpha/tsunami_cchip.cc
+++ b/src/dev/alpha/tsunami_cchip.cc
@@ -83,7 +83,6 @@ TsunamiCChip::read(PacketPtr pkt)
Addr regnum = (pkt->getAddr() - pioAddr) >> 6;
Addr daddr = (pkt->getAddr() - pioAddr);
- pkt->allocate();
switch (pkt->getSize()) {
case sizeof(uint64_t):
diff --git a/src/dev/alpha/tsunami_io.cc b/src/dev/alpha/tsunami_io.cc
index 6586cd980..2c503880f 100644
--- a/src/dev/alpha/tsunami_io.cc
+++ b/src/dev/alpha/tsunami_io.cc
@@ -96,8 +96,6 @@ TsunamiIO::read(PacketPtr pkt)
DPRINTF(Tsunami, "io read va=%#x size=%d IOPorrt=%#x\n", pkt->getAddr(),
pkt->getSize(), daddr);
- pkt->allocate();
-
if (pkt->getSize() == sizeof(uint8_t)) {
switch(daddr) {
// PIC1 mask read
diff --git a/src/dev/alpha/tsunami_pchip.cc b/src/dev/alpha/tsunami_pchip.cc
index 3ddc0f1b3..328699f9f 100644
--- a/src/dev/alpha/tsunami_pchip.cc
+++ b/src/dev/alpha/tsunami_pchip.cc
@@ -72,7 +72,6 @@ TsunamiPChip::read(PacketPtr pkt)
{
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
- pkt->allocate();
Addr daddr = (pkt->getAddr() - pioAddr) >> 6;;
assert(pkt->getSize() == sizeof(uint64_t));
diff --git a/src/dev/arm/a9scu.cc b/src/dev/arm/a9scu.cc
index dc012a036..26b2a4522 100644
--- a/src/dev/arm/a9scu.cc
+++ b/src/dev/arm/a9scu.cc
@@ -55,7 +55,6 @@ A9SCU::read(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
assert(pkt->getSize() == 4);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
switch(daddr) {
case Control:
diff --git a/src/dev/arm/amba_device.cc b/src/dev/arm/amba_device.cc
index d2333417f..0ba20d087 100644
--- a/src/dev/arm/amba_device.cc
+++ b/src/dev/arm/amba_device.cc
@@ -76,8 +76,6 @@ AmbaDevice::readId(PacketPtr pkt, uint64_t amba_id, Addr pio_addr)
if (daddr < AMBA_PER_ID0 || daddr > AMBA_CEL_ID3)
return false;
- pkt->allocate();
-
int byte = (daddr - AMBA_PER_ID0) << 1;
// Too noisy right now
DPRINTF(AMBA, "Returning %#x for offset %#x(%d)\n",
diff --git a/src/dev/arm/amba_fake.cc b/src/dev/arm/amba_fake.cc
index 3ca705c6c..d415ab2fa 100644
--- a/src/dev/arm/amba_fake.cc
+++ b/src/dev/arm/amba_fake.cc
@@ -57,7 +57,6 @@ AmbaFake::read(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
DPRINTF(AMBA, " read register %#x\n", daddr);
@@ -74,7 +73,6 @@ AmbaFake::write(PacketPtr pkt)
{
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
if (!params()->ignore_access)
panic("Tried to write AmbaFake at offset %#x that doesn't exist\n", daddr);
diff --git a/src/dev/arm/energy_ctrl.cc b/src/dev/arm/energy_ctrl.cc
index cbfa5aa79..b77eaba3b 100644
--- a/src/dev/arm/energy_ctrl.cc
+++ b/src/dev/arm/energy_ctrl.cc
@@ -64,7 +64,6 @@ EnergyCtrl::read(PacketPtr pkt)
{
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
assert(pkt->getSize() == 4);
- pkt->allocate();
Addr daddr = pkt->getAddr() - pioAddr;
assert((daddr & 3) == 0);
diff --git a/src/dev/arm/gic_pl390.cc b/src/dev/arm/gic_pl390.cc
index b93cdd028..019b3ee8b 100644
--- a/src/dev/arm/gic_pl390.cc
+++ b/src/dev/arm/gic_pl390.cc
@@ -150,7 +150,6 @@ Tick
Pl390::readDistributor(PacketPtr pkt)
{
Addr daddr = pkt->getAddr() - distAddr;
- pkt->allocate();
int ctx_id = pkt->req->contextId();
@@ -284,7 +283,6 @@ Tick
Pl390::readCpu(PacketPtr pkt)
{
Addr daddr = pkt->getAddr() - cpuAddr;
- pkt->allocate();
assert(pkt->req->hasContextId());
int ctx_id = pkt->req->contextId();
@@ -369,7 +367,6 @@ Tick
Pl390::readMsix(PacketPtr pkt)
{
Addr daddr = pkt->getAddr() - msixRegAddr;
- pkt->allocate();
DPRINTF(GIC, "Gic MSIX read register %#x\n", daddr);
@@ -390,7 +387,6 @@ Tick
Pl390::writeDistributor(PacketPtr pkt)
{
Addr daddr = pkt->getAddr() - distAddr;
- pkt->allocate();
assert(pkt->req->hasContextId());
int ctx_id = pkt->req->contextId();
@@ -531,7 +527,6 @@ Tick
Pl390::writeCpu(PacketPtr pkt)
{
Addr daddr = pkt->getAddr() - cpuAddr;
- pkt->allocate();
assert(pkt->req->hasContextId());
int ctx_id = pkt->req->contextId();
@@ -586,7 +581,6 @@ Tick
Pl390::writeMsix(PacketPtr pkt)
{
Addr daddr = pkt->getAddr() - msixRegAddr;
- pkt->allocate();
DPRINTF(GIC, "Gic MSI-X write register %#x data %d\n",
daddr, pkt->get<uint32_t>());
diff --git a/src/dev/arm/hdlcd.cc b/src/dev/arm/hdlcd.cc
index 349b246c2..37569b22b 100644
--- a/src/dev/arm/hdlcd.cc
+++ b/src/dev/arm/hdlcd.cc
@@ -104,8 +104,6 @@ HDLcd::read(PacketPtr pkt)
pkt->getAddr() < pioAddr + pioSize &&
pkt->getSize() == 4);
- pkt->allocate();
-
switch (daddr) {
case Version:
data = version;
diff --git a/src/dev/arm/kmi.cc b/src/dev/arm/kmi.cc
index 99d61c610..2344b4cb5 100644
--- a/src/dev/arm/kmi.cc
+++ b/src/dev/arm/kmi.cc
@@ -69,8 +69,6 @@ Pl050::read(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
-
uint32_t data = 0;
diff --git a/src/dev/arm/pl011.cc b/src/dev/arm/pl011.cc
index b47d0e9fb..d690ee9cb 100644
--- a/src/dev/arm/pl011.cc
+++ b/src/dev/arm/pl011.cc
@@ -64,7 +64,6 @@ Pl011::read(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
DPRINTF(Uart, " read register %#x size=%d\n", daddr, pkt->getSize());
diff --git a/src/dev/arm/pl111.cc b/src/dev/arm/pl111.cc
index 4d1bcba1e..a5b9b412c 100644
--- a/src/dev/arm/pl111.cc
+++ b/src/dev/arm/pl111.cc
@@ -104,7 +104,6 @@ Pl111::read(PacketPtr pkt)
pkt->getAddr() < pioAddr + pioSize);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
DPRINTF(PL111, " read register %#x size=%d\n", daddr, pkt->getSize());
diff --git a/src/dev/arm/rtc_pl031.cc b/src/dev/arm/rtc_pl031.cc
index 8f421a1da..a43ac6271 100644
--- a/src/dev/arm/rtc_pl031.cc
+++ b/src/dev/arm/rtc_pl031.cc
@@ -62,7 +62,6 @@ PL031::read(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
assert(pkt->getSize() == 4);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
uint32_t data;
DPRINTF(Timer, "Reading from RTC at offset: %#x\n", daddr);
@@ -125,7 +124,6 @@ PL031::write(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
assert(pkt->getSize() == 4);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
DPRINTF(Timer, "Writing to RTC at offset: %#x\n", daddr);
switch (daddr) {
diff --git a/src/dev/arm/rv_ctrl.cc b/src/dev/arm/rv_ctrl.cc
index af121861c..f2b85d513 100644
--- a/src/dev/arm/rv_ctrl.cc
+++ b/src/dev/arm/rv_ctrl.cc
@@ -54,7 +54,6 @@ RealViewCtrl::read(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
assert(pkt->getSize() == 4);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
switch(daddr) {
case ProcId0:
diff --git a/src/dev/arm/timer_cpulocal.cc b/src/dev/arm/timer_cpulocal.cc
index ae341e2be..de2f99f0a 100644
--- a/src/dev/arm/timer_cpulocal.cc
+++ b/src/dev/arm/timer_cpulocal.cc
@@ -75,7 +75,6 @@ CpuLocalTimer::read(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
assert(pkt->getSize() == 4);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
int cpu_id = pkt->req->contextId();
DPRINTF(Timer, "Reading from CpuLocalTimer at offset: %#x\n", daddr);
assert(cpu_id >= 0);
@@ -154,7 +153,6 @@ CpuLocalTimer::write(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
assert(pkt->getSize() == 4);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
int cpu_id = pkt->req->contextId();
DPRINTF(Timer, "Writing to CpuLocalTimer at offset: %#x\n", daddr);
assert(cpu_id >= 0);
diff --git a/src/dev/arm/timer_sp804.cc b/src/dev/arm/timer_sp804.cc
index 25bc08003..9f7867107 100644
--- a/src/dev/arm/timer_sp804.cc
+++ b/src/dev/arm/timer_sp804.cc
@@ -66,7 +66,6 @@ Sp804::read(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
assert(pkt->getSize() == 4);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
DPRINTF(Timer, "Reading from DualTimer at offset: %#x\n", daddr);
if (daddr < Timer::Size)
@@ -121,7 +120,6 @@ Sp804::write(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
assert(pkt->getSize() == 4);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
DPRINTF(Timer, "Writing to DualTimer at offset: %#x\n", daddr);
if (daddr < Timer::Size)
diff --git a/src/dev/arm/vgic.cc b/src/dev/arm/vgic.cc
index 2faf2030e..4a63c796a 100644
--- a/src/dev/arm/vgic.cc
+++ b/src/dev/arm/vgic.cc
@@ -92,7 +92,6 @@ Tick
VGic::readVCpu(PacketPtr pkt)
{
Addr daddr = pkt->getAddr() - vcpuAddr;
- pkt->allocate();
int ctx_id = pkt->req->contextId();
assert(ctx_id < VGIC_CPU_MAX);
@@ -137,7 +136,6 @@ Tick
VGic::readCtrl(PacketPtr pkt)
{
Addr daddr = pkt->getAddr() - hvAddr;
- pkt->allocate();
int ctx_id = pkt->req->contextId();
@@ -232,7 +230,6 @@ Tick
VGic::writeVCpu(PacketPtr pkt)
{
Addr daddr = pkt->getAddr() - vcpuAddr;
- pkt->allocate();
int ctx_id = pkt->req->contextId();
assert(ctx_id < VGIC_CPU_MAX);
@@ -280,7 +277,6 @@ Tick
VGic::writeCtrl(PacketPtr pkt)
{
Addr daddr = pkt->getAddr() - hvAddr;
- pkt->allocate();
int ctx_id = pkt->req->contextId();
diff --git a/src/dev/copy_engine.cc b/src/dev/copy_engine.cc
index e4cd90c1c..a3d73b634 100644
--- a/src/dev/copy_engine.cc
+++ b/src/dev/copy_engine.cc
@@ -182,8 +182,6 @@ CopyEngine::read(PacketPtr pkt)
DPRINTF(DMACopyEngine, "Read device register %#X size: %d\n", daddr, size);
- pkt->allocate();
-
///
/// Handle read of register here
///
diff --git a/src/dev/i8254xGBe.cc b/src/dev/i8254xGBe.cc
index af9734761..70dba7c22 100644
--- a/src/dev/i8254xGBe.cc
+++ b/src/dev/i8254xGBe.cc
@@ -183,8 +183,6 @@ IGbE::read(PacketPtr pkt)
DPRINTF(Ethernet, "Read device register %#X\n", daddr);
- pkt->allocate();
-
//
// Handle read of register here
//
diff --git a/src/dev/ide_ctrl.cc b/src/dev/ide_ctrl.cc
index bbc0e379d..27757529a 100644
--- a/src/dev/ide_ctrl.cc
+++ b/src/dev/ide_ctrl.cc
@@ -172,8 +172,6 @@ IdeController::readConfig(PacketPtr pkt)
return PciDevice::readConfig(pkt);
}
- pkt->allocate();
-
switch (pkt->getSize()) {
case sizeof(uint8_t):
switch (offset) {
@@ -462,7 +460,6 @@ IdeController::Channel::accessBMI(Addr offset,
void
IdeController::dispatchAccess(PacketPtr pkt, bool read)
{
- pkt->allocate();
if (pkt->getSize() != 1 && pkt->getSize() != 2 && pkt->getSize() !=4)
panic("Bad IDE read size: %d\n", pkt->getSize());
diff --git a/src/dev/isa_fake.cc b/src/dev/isa_fake.cc
index 235dc3098..0871fecbb 100644
--- a/src/dev/isa_fake.cc
+++ b/src/dev/isa_fake.cc
@@ -53,7 +53,6 @@ IsaFake::IsaFake(Params *p)
Tick
IsaFake::read(PacketPtr pkt)
{
- pkt->allocate();
pkt->makeAtomicResponse();
if (params()->warn_access != "")
diff --git a/src/dev/mips/malta_cchip.cc b/src/dev/mips/malta_cchip.cc
index fe3336435..dc5211122 100755
--- a/src/dev/mips/malta_cchip.cc
+++ b/src/dev/mips/malta_cchip.cc
@@ -78,7 +78,6 @@ MaltaCChip::read(PacketPtr pkt)
Addr regnum = (pkt->getAddr() - pioAddr) >> 6;
Addr daddr = (pkt->getAddr() - pioAddr);
- pkt->allocate();
switch (pkt->getSize()) {
case sizeof(uint64_t):
diff --git a/src/dev/mips/malta_pchip.cc b/src/dev/mips/malta_pchip.cc
index 37aaa1b5a..bee61fddd 100755
--- a/src/dev/mips/malta_pchip.cc
+++ b/src/dev/mips/malta_pchip.cc
@@ -71,7 +71,6 @@ MaltaPChip::read(PacketPtr pkt)
{
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
- pkt->allocate();
Addr daddr = (pkt->getAddr() - pioAddr) >> 6;;
assert(pkt->getSize() == sizeof(uint64_t));
diff --git a/src/dev/ns_gige.cc b/src/dev/ns_gige.cc
index 239babe70..d87975759 100644
--- a/src/dev/ns_gige.cc
+++ b/src/dev/ns_gige.cc
@@ -186,8 +186,6 @@ NSGigE::read(PacketPtr pkt)
{
assert(ioEnable);
- pkt->allocate();
-
//The mask is to give you only the offset into the device register file
Addr daddr = pkt->getAddr() & 0xfff;
DPRINTF(EthernetPIO, "read da=%#x pa=%#x size=%d\n",
diff --git a/src/dev/pciconfigall.cc b/src/dev/pciconfigall.cc
index b0da01f0b..882366a42 100644
--- a/src/dev/pciconfigall.cc
+++ b/src/dev/pciconfigall.cc
@@ -55,9 +55,6 @@ PciConfigAll::PciConfigAll(const Params *p)
Tick
PciConfigAll::read(PacketPtr pkt)
{
-
- pkt->allocate();
-
DPRINTF(PciConfigAll, "read va=%#x size=%d\n", pkt->getAddr(),
pkt->getSize());
diff --git a/src/dev/pcidev.cc b/src/dev/pcidev.cc
index 232aa9e8b..715b67603 100644
--- a/src/dev/pcidev.cc
+++ b/src/dev/pcidev.cc
@@ -294,10 +294,6 @@ PciDevice::readConfig(PacketPtr pkt)
panic("Out-of-range access to PCI config space!\n");
}
-
-
- pkt->allocate();
-
switch (pkt->getSize()) {
case sizeof(uint8_t):
pkt->set<uint8_t>(config.data[offset]);
diff --git a/src/dev/sinic.cc b/src/dev/sinic.cc
index 798fb17ef..a5608fb36 100644
--- a/src/dev/sinic.cc
+++ b/src/dev/sinic.cc
@@ -225,8 +225,6 @@ Device::read(PacketPtr pkt)
Addr index = daddr >> Regs::VirtualShift;
Addr raddr = daddr & Regs::VirtualMask;
- pkt->allocate();
-
if (!regValid(raddr))
panic("invalid register: cpu=%d vnic=%d da=%#x pa=%#x size=%d",
cpu, index, daddr, pkt->getAddr(), pkt->getSize());
diff --git a/src/dev/sparc/dtod.cc b/src/dev/sparc/dtod.cc
index 94a32bed4..3853abb16 100644
--- a/src/dev/sparc/dtod.cc
+++ b/src/dev/sparc/dtod.cc
@@ -65,7 +65,6 @@ DumbTOD::read(PacketPtr pkt)
assert(pkt->getAddr() >= pioAddr && pkt->getAddr() < pioAddr + pioSize);
assert(pkt->getSize() == 8);
- pkt->allocate();
pkt->set(todTime);
todTime += 1000;
diff --git a/src/dev/uart8250.cc b/src/dev/uart8250.cc
index 40ee7d38f..e840d2a56 100644
--- a/src/dev/uart8250.cc
+++ b/src/dev/uart8250.cc
@@ -113,7 +113,6 @@ Uart8250::read(PacketPtr pkt)
assert(pkt->getSize() == 1);
Addr daddr = pkt->getAddr() - pioAddr;
- pkt->allocate();
DPRINTF(Uart, " read register %#x\n", daddr);
diff --git a/src/dev/virtio/base.cc b/src/dev/virtio/base.cc
index 44cce65c4..06c6e3452 100644
--- a/src/dev/virtio/base.cc
+++ b/src/dev/virtio/base.cc
@@ -422,7 +422,6 @@ void
VirtIODeviceBase::readConfigBlob(PacketPtr pkt, Addr cfgOffset, const uint8_t *cfg)
{
const unsigned size(pkt->getSize());
- pkt->allocate();
if (cfgOffset + size > configSize)
panic("Config read out of bounds.\n");
@@ -434,7 +433,6 @@ void
VirtIODeviceBase::writeConfigBlob(PacketPtr pkt, Addr cfgOffset, uint8_t *cfg)
{
const unsigned size(pkt->getSize());
- pkt->allocate();
if (cfgOffset + size > configSize)
panic("Config write out of bounds.\n");
diff --git a/src/dev/virtio/pci.cc b/src/dev/virtio/pci.cc
index 1f99d7fe4..c77b61934 100644
--- a/src/dev/virtio/pci.cc
+++ b/src/dev/virtio/pci.cc
@@ -75,8 +75,6 @@ PciVirtIO::read(PacketPtr pkt)
return 0;
}
- pkt->allocate();
-
switch(offset) {
case OFF_DEVICE_FEATURES:
DPRINTF(VIOPci, " DEVICE_FEATURES request\n");
@@ -153,8 +151,6 @@ PciVirtIO::write(PacketPtr pkt)
return 0;
}
- pkt->allocate();
-
switch(offset) {
case OFF_DEVICE_FEATURES:
warn("Guest tried to write device features.");
diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh
index f4099c0ef..2eb38805c 100644
--- a/src/mem/cache/cache_impl.hh
+++ b/src/mem/cache/cache_impl.hh
@@ -1566,7 +1566,6 @@ doTimingSupplyResponse(PacketPtr req_pkt, const uint8_t *blk_data,
// already made a copy...
PacketPtr pkt = already_copied ? req_pkt : new Packet(req_pkt);
assert(req_pkt->isInvalidate() || pkt->sharedAsserted());
- pkt->allocate();
pkt->makeTimingResponse();
// @todo Make someone pay for this
pkt->firstWordDelay = pkt->lastWordDelay = 0;
@@ -2018,7 +2017,6 @@ Cache<TagStore>::getTimingPacket()
// make copy of current packet to forward, keep current
// copy for response handling
pkt = new Packet(tgt_pkt);
- pkt->allocate();
if (pkt->isWrite()) {
pkt->setData(tgt_pkt->getConstPtr<uint8_t>());
}
diff --git a/src/mem/packet.cc b/src/mem/packet.cc
index 9dd67746b..758770824 100644
--- a/src/mem/packet.cc
+++ b/src/mem/packet.cc
@@ -204,7 +204,6 @@ Packet::checkFunctional(Printable *obj, Addr addr, bool is_secure, int size,
if (isRead()) {
if (func_start >= val_start && func_end <= val_end) {
- allocate();
memcpy(getPtr<uint8_t>(), data + offset, getSize());
return true;
} else {
diff --git a/src/mem/packet.hh b/src/mem/packet.hh
index b540ef6ca..e8fb00680 100644
--- a/src/mem/packet.hh
+++ b/src/mem/packet.hh
@@ -659,6 +659,11 @@ class Packet : public Printable
flags.set(pkt->flags & (VALID_ADDR|VALID_SIZE));
flags.set(pkt->flags & STATIC_DATA);
+
+ // if we did not copy the static data pointer, allocate data
+ // dynamically instead
+ if (!data)
+ allocate();
}
/**
@@ -942,15 +947,10 @@ class Packet : public Printable
data = NULL;
}
- /** If there isn't data in the packet, allocate some. */
+ /** Allocate memory for the packet. */
void
allocate()
{
- if (data) {
- assert(flags.isSet(STATIC_DATA|DYNAMIC_DATA));
- return;
- }
-
assert(flags.noneSet(STATIC_DATA|DYNAMIC_DATA));
flags.set(DYNAMIC_DATA|ARRAY_DATA);
data = new uint8_t[getSize()];