fix for delayed state machine changes
authorAli Saidi <saidi@eecs.umich.edu>
Thu, 29 Sep 2005 21:09:53 +0000 (17:09 -0400)
committerAli Saidi <saidi@eecs.umich.edu>
Thu, 29 Sep 2005 21:09:53 +0000 (17:09 -0400)
--HG--
extra : convert_revision : db19e3687f48799725a9062e014588d318988cee

dev/ns_gige.cc

index 6aae7b9eb1906baa552799f3fd0f9ff947917b07..47cd4d7da15cf2c2817918d16cc1311de9669e02 100644 (file)
@@ -1840,6 +1840,8 @@ NSGigE::rxKick()
             CRDD = true;
             goto exit;
         } else {
+            if (rxDmaState != dmaIdle)
+                goto exit;
             rxState = rxDescRead;
             regs.rxdp = rxDescCache.link;
             CRDD = false;
@@ -2286,6 +2288,8 @@ NSGigE::txKick()
             txState = txIdle;
             goto exit;
         } else {
+            if (txDmaState != dmaIdle)
+                goto exit;
             txState = txDescRead;
             regs.txdp = txDescCache.link;
             CTDD = false;