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:
parent
0f07cf12ac
commit
5b01e77c64
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user