From cf826ae296a4277bdf2ce46e4484295efde5a3c2 Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Tue, 23 May 2006 17:16:45 -0400 Subject: Minor fixes for full-system timing memory. Need to rewrite bus bridge to get any further. src/dev/io_device.cc: Set packet dest on timing responses. src/mem/bus.cc: Fix dest addr bounds check assertion. Add assertion to catch infinite loopbacks. src/mem/physical.cc: Add comment. --HG-- extra : convert_revision : 419b65a3a61e2d099884dbda117b338dffd80896 --- src/mem/bus.cc | 3 ++- src/mem/physical.cc | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src/mem') diff --git a/src/mem/bus.cc b/src/mem/bus.cc index f7c2b874a..e8dfbc2e6 100644 --- a/src/mem/bus.cc +++ b/src/mem/bus.cc @@ -54,7 +54,8 @@ Bus::recvTiming(Packet *pkt) if (pkt->dest == Packet::Broadcast) { port = findPort(pkt->addr, pkt->src); } else { - assert(pkt->dest > 0 && pkt->dest < interfaces.size()); + assert(pkt->dest >= 0 && pkt->dest < interfaces.size()); + assert(pkt->dest != pkt->src); // catch infinite loops port = interfaces[pkt->dest]; } return port->sendTiming(pkt); diff --git a/src/mem/physical.cc b/src/mem/physical.cc index bc2500678..75179f9e3 100644 --- a/src/mem/physical.cc +++ b/src/mem/physical.cc @@ -127,6 +127,7 @@ PhysicalMemory::doTimingAccess (Packet *pkt, MemoryPort* memoryPort) { doFunctionalAccess(pkt); + // turn packet around to go back to requester pkt->dest = pkt->src; MemResponseEvent* response = new MemResponseEvent(pkt, memoryPort); response->schedule(curTick + lat); -- cgit v1.2.3