summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-09-06 16:32:03 -0700
committerGabe Black <gblack@eecs.umich.edu>2007-09-06 16:32:03 -0700
commit3e65e1d0e0dc57831babb6e5a4566bbbc9409acf (patch)
treef041841804815c691e397ffb45d9c8f46a4e12b4 /src
parente4c01713562f51847537c5724bc629ce4bdcf3bc (diff)
parentbf7c01d43d2a9e415ed3cc6cf310e76109ce6844 (diff)
downloadgem5-3e65e1d0e0dc57831babb6e5a4566bbbc9409acf.tar.xz
Merge with head.
--HG-- extra : convert_revision : 4fc5f595b23f72c0825d62f21efab46ed1db835b
Diffstat (limited to 'src')
-rw-r--r--src/mem/bus.cc5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/mem/bus.cc b/src/mem/bus.cc
index cc3504e83..6e790e438 100644
--- a/src/mem/bus.cc
+++ b/src/mem/bus.cc
@@ -613,12 +613,11 @@ Bus::drain(Event * de)
//We should check that we're not "doing" anything, and that noone is
//waiting. We might be idle but have someone waiting if the device we
//contacted for a retry didn't actually retry.
- if (curTick >= tickNextIdle && retryList.size() == 0) {
- return 0;
- } else {
+ if (retryList.size() || (curTick < tickNextIdle && busIdle.scheduled())) {
drainEvent = de;
return 1;
}
+ return 0;
}
void