Fixed resetting of the watchdog timer and queue full flag.

This commit is contained in:
ru 2004-04-11 18:28:14 +00:00
parent d2fa2c987e
commit a93512febd

View File

@ -1412,15 +1412,12 @@ static void
nge_txeof(sc) nge_txeof(sc)
struct nge_softc *sc; struct nge_softc *sc;
{ {
struct nge_desc *cur_tx = NULL; struct nge_desc *cur_tx;
struct ifnet *ifp; struct ifnet *ifp;
u_int32_t idx; u_int32_t idx;
ifp = &sc->arpcom.ac_if; ifp = &sc->arpcom.ac_if;
/* Clear the timeout timer. */
ifp->if_timer = 0;
/* /*
* Go through our tx list and free mbufs for those * Go through our tx list and free mbufs for those
* frames that have been transmitted. * frames that have been transmitted.
@ -1453,17 +1450,17 @@ nge_txeof(sc)
if (cur_tx->nge_mbuf != NULL) { if (cur_tx->nge_mbuf != NULL) {
m_freem(cur_tx->nge_mbuf); m_freem(cur_tx->nge_mbuf);
cur_tx->nge_mbuf = NULL; cur_tx->nge_mbuf = NULL;
ifp->if_flags &= ~IFF_OACTIVE;
} }
sc->nge_cdata.nge_tx_cnt--; sc->nge_cdata.nge_tx_cnt--;
NGE_INC(idx, NGE_TX_LIST_CNT); NGE_INC(idx, NGE_TX_LIST_CNT);
ifp->if_timer = 0;
} }
sc->nge_cdata.nge_tx_cons = idx; sc->nge_cdata.nge_tx_cons = idx;
if (cur_tx != NULL) if (idx == sc->nge_cdata.nge_tx_prod)
ifp->if_flags &= ~IFF_OACTIVE; ifp->if_timer = 0;
return; return;
} }