From 57ff2604e59647c6afe988767186f13c80c1aa16 Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Sat, 23 Jun 2007 13:24:33 -0700 Subject: [PATCH] Minor fix plus new assertion to catch similar bugs. src/cpu/memtest/memtest.cc: Need to set packet source field so that response from cache doesn't run into assertion failure when copying source to dest. src/mem/packet.hh: Copy source field when copying packets. Assert that source is valid before copying it to dest when turning packets around. --HG-- extra : convert_revision : 09e3cfda424aa89fe170e21e955b295746832bf8 --- src/cpu/memtest/memtest.cc | 2 ++ src/mem/packet.hh | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/cpu/memtest/memtest.cc b/src/cpu/memtest/memtest.cc index 6e8c5d0bf..019b4328c 100644 --- a/src/cpu/memtest/memtest.cc +++ b/src/cpu/memtest/memtest.cc @@ -344,6 +344,7 @@ MemTest::tick() req->getPaddr(), blockAddr(req->getPaddr()), *result); PacketPtr pkt = new Packet(req, MemCmd::ReadReq, Packet::Broadcast); + pkt->setSrc(0); pkt->dataDynamicArray(new uint8_t[req->getSize()]); MemTestSenderState *state = new MemTestSenderState(result); pkt->senderState = state; @@ -373,6 +374,7 @@ MemTest::tick() req->getPaddr(), blockAddr(req->getPaddr()), data & 0xff); PacketPtr pkt = new Packet(req, MemCmd::WriteReq, Packet::Broadcast); + pkt->setSrc(0); uint8_t *pkt_data = new uint8_t[req->getSize()]; pkt->dataDynamicArray(pkt_data); memcpy(pkt_data, &data, req->getSize()); diff --git a/src/mem/packet.hh b/src/mem/packet.hh index 80da045ef..fc1c283ed 100644 --- a/src/mem/packet.hh +++ b/src/mem/packet.hh @@ -384,7 +384,7 @@ class Packet : public FastAlloc Packet(Packet *origPkt) : data(NULL), staticData(false), dynamicData(false), arrayData(false), addr(origPkt->addr), size(origPkt->size), - dest(origPkt->dest), + src(origPkt->src), dest(origPkt->dest), addrSizeValid(origPkt->addrSizeValid), srcValid(origPkt->srcValid), snoopFlags(origPkt->snoopFlags), time(curTick), @@ -440,7 +440,7 @@ class Packet : public FastAlloc */ void convertAtomicToTimingResponse() { - dest = src; + dest = getSrc(); srcValid = false; } -- 2.30.2