Don't call recvRetry if the bus is busy anyway. This takes care of a corner case...
authorGabe Black <gblack@eecs.umich.edu>
Wed, 11 Oct 2006 04:54:47 +0000 (00:54 -0400)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 11 Oct 2006 04:54:47 +0000 (00:54 -0400)
--HG--
extra : convert_revision : 38f7ef1b41477fb2a2438387ef3a81cccd3e7a8a

src/mem/bus.cc

index 6065ee1f1517ca19ee9114ebd41df6398367f380..3998666c7c6ef69de2952f91f376857e36a82dad 100644 (file)
@@ -206,8 +206,8 @@ void
 Bus::recvRetry(int id)
 {
     DPRINTF(Bus, "Received a retry\n");
-    // If there's anything waiting...
-    if (retryList.size()) {
+    // If there's anything waiting, and the bus isn't busy...
+    if (retryList.size() && curTick >= tickNextIdle) {
         //retryingPort = retryList.front();
         inRetry = true;
         DPRINTF(Bus, "Sending a retry\n");