summaryrefslogtreecommitdiffstats
path: root/sys/dev/nge
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2004-04-11 18:28:14 +0000
committerru <ru@FreeBSD.org>2004-04-11 18:28:14 +0000
commita93512febdf60b17373ac251481c01f0c8bcd88c (patch)
tree6d11a036e0096be99e1f854a91ac719436c98007 /sys/dev/nge
parentd2fa2c987e4b828babd4a3cbb7f0c19158189960 (diff)
downloadFreeBSD-src-a93512febdf60b17373ac251481c01f0c8bcd88c.zip
FreeBSD-src-a93512febdf60b17373ac251481c01f0c8bcd88c.tar.gz
Fixed resetting of the watchdog timer and queue full flag.
Diffstat (limited to 'sys/dev/nge')
-rw-r--r--sys/dev/nge/if_nge.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/sys/dev/nge/if_nge.c b/sys/dev/nge/if_nge.c
index 2b85ed1..b281e87 100644
--- a/sys/dev/nge/if_nge.c
+++ b/sys/dev/nge/if_nge.c
@@ -1412,15 +1412,12 @@ static void
nge_txeof(sc)
struct nge_softc *sc;
{
- struct nge_desc *cur_tx = NULL;
+ struct nge_desc *cur_tx;
struct ifnet *ifp;
u_int32_t idx;
ifp = &sc->arpcom.ac_if;
- /* Clear the timeout timer. */
- ifp->if_timer = 0;
-
/*
* Go through our tx list and free mbufs for those
* frames that have been transmitted.
@@ -1453,17 +1450,17 @@ nge_txeof(sc)
if (cur_tx->nge_mbuf != NULL) {
m_freem(cur_tx->nge_mbuf);
cur_tx->nge_mbuf = NULL;
+ ifp->if_flags &= ~IFF_OACTIVE;
}
sc->nge_cdata.nge_tx_cnt--;
NGE_INC(idx, NGE_TX_LIST_CNT);
- ifp->if_timer = 0;
}
sc->nge_cdata.nge_tx_cons = idx;
- if (cur_tx != NULL)
- ifp->if_flags &= ~IFF_OACTIVE;
+ if (idx == sc->nge_cdata.nge_tx_prod)
+ ifp->if_timer = 0;
return;
}
OpenPOWER on IntegriCloud