Fixed resetting of the watchdog timer and queue full flag.
This commit is contained in:
parent
d2fa2c987e
commit
a93512febd
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user