In bge_txeof(), cancel the watchdog timeout if all descriptors have

been handled instead of when at least one descriptor was just handled.
For bge, it is normal to get a txeof when only a small fraction of the
queued tx descriptors have been handled, so the bug broke the watchdog
in a usual case.
This commit is contained in:
Bruce Evans 2006-12-20 12:03:21 +00:00
parent 0f07cf12ac
commit 5b01e77c64

View File

@ -2908,11 +2908,12 @@ bge_txeof(struct bge_softc *sc)
}
sc->bge_txcnt--;
BGE_INC(sc->bge_tx_saved_considx, BGE_TX_RING_CNT);
sc->bge_timer = 0;
}
if (cur_tx != NULL)
ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
if (sc->bge_txcnt == 0)
sc->bge_timer = 0;
}
#ifdef DEVICE_POLLING