summaryrefslogtreecommitdiff
path: root/src/dev
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2006-07-13 15:50:09 -0400
committerAli Saidi <saidi@eecs.umich.edu>2006-07-13 15:50:09 -0400
commitefc06d0545912f4589e86fe32deac98805786ee6 (patch)
tree7655d0f658e0582d9985551d193811d8525d1fbc /src/dev
parent1e4acb8e017ce81694c514af21ad817e9b1a078e (diff)
parente1b8e71500b7b66b115345eeaef7216617487456 (diff)
downloadgem5-efc06d0545912f4589e86fe32deac98805786ee6.tar.xz
Merge zizzer:/bk/newmem
into zeep.pool:/z/saidi/work/m5.newmem src/python/m5/main.py: merge two help fixes --HG-- extra : convert_revision : b5c4a88bb84b726bebd3e357a4ef29acc0d95600
Diffstat (limited to 'src/dev')
-rw-r--r--src/dev/io_device.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/dev/io_device.cc b/src/dev/io_device.cc
index ed2862065..660efabfd 100644
--- a/src/dev/io_device.cc
+++ b/src/dev/io_device.cc
@@ -287,6 +287,7 @@ DmaPort::sendDma(Packet *pkt, bool front)
// some kind of selction between access methods
// more work is going to have to be done to make
// switching actually work
+
System::MemoryMode state = sys->getMemoryMode();
if (state == System::Timing) {
DPRINTF(DMA, "Attempting to send Packet %#x with addr: %#x\n",
@@ -301,15 +302,15 @@ DmaPort::sendDma(Packet *pkt, bool front)
DPRINTF(DMA, "-- Done\n");
}
} else if (state == System::Atomic) {
- sendAtomic(pkt);
+ Tick lat;
+ lat = sendAtomic(pkt);
assert(pkt->senderState);
DmaReqState *state = dynamic_cast<DmaReqState*>(pkt->senderState);
assert(state);
state->numBytes += pkt->req->getSize();
if (state->totBytes == state->numBytes) {
- state->completionEvent->schedule(curTick +
- (pkt->time - pkt->req->getTime()) +1);
+ state->completionEvent->schedule(curTick + lat);
delete state;
delete pkt->req;
}