svn commit: r185276 - head/sys/dev/fxp
Pyun YongHyeon
yongari at FreeBSD.org
Mon Nov 24 18:05:02 PST 2008
Author: yongari
Date: Tue Nov 25 02:05:01 2008
New Revision: 185276
URL: http://svn.freebsd.org/changeset/base/185276
Log:
Move unarming watchdog timer and pending multicast configuration
check to fxp_txeof(). While I'm here unarm watchdog timer only if
there are no pending queued Tx requests.
Previously the watchdog timer was unarmed whenever Tx interrupt is
raised. This could be resulted in hiding root cause of watchdog
timeouts.
Modified:
head/sys/dev/fxp/if_fxp.c
Modified: head/sys/dev/fxp/if_fxp.c
==============================================================================
--- head/sys/dev/fxp/if_fxp.c Tue Nov 25 01:41:19 2008 (r185275)
+++ head/sys/dev/fxp/if_fxp.c Tue Nov 25 02:05:01 2008 (r185276)
@@ -1547,6 +1547,11 @@ fxp_txeof(struct fxp_softc *sc)
}
sc->fxp_desc.tx_first = txp;
bus_dmamap_sync(sc->cbl_tag, sc->cbl_map, BUS_DMASYNC_PREWRITE);
+ if (sc->tx_queued == 0) {
+ sc->watchdog_timer = 0;
+ if (sc->need_mcsetup)
+ fxp_mc_setup(sc);
+ }
}
static void
@@ -1587,11 +1592,6 @@ fxp_intr_body(struct fxp_softc *sc, stru
if (statack & (FXP_SCB_STATACK_CXTNO | FXP_SCB_STATACK_CNA)) {
fxp_txeof(sc);
- sc->watchdog_timer = 0;
- if (sc->tx_queued == 0) {
- if (sc->need_mcsetup)
- fxp_mc_setup(sc);
- }
/*
* Try to start more packets transmitting.
*/
More information about the svn-src-head
mailing list