svn commit: r188369 - in stable/7/sys: . contrib/pf dev/ath/ath_hal
dev/cxgb dev/fxp
Pyun YongHyeon
yongari at FreeBSD.org
Sun Feb 8 19:34:38 PST 2009
Author: yongari
Date: Mon Feb 9 03:34:35 2009
New Revision: 188369
URL: http://svn.freebsd.org/changeset/base/188369
Log:
MFC r185276
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:
stable/7/sys/ (props changed)
stable/7/sys/contrib/pf/ (props changed)
stable/7/sys/dev/ath/ath_hal/ (props changed)
stable/7/sys/dev/cxgb/ (props changed)
stable/7/sys/dev/fxp/if_fxp.c
Modified: stable/7/sys/dev/fxp/if_fxp.c
==============================================================================
--- stable/7/sys/dev/fxp/if_fxp.c Mon Feb 9 03:32:23 2009 (r188368)
+++ stable/7/sys/dev/fxp/if_fxp.c Mon Feb 9 03:34:35 2009 (r188369)
@@ -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-stable-7
mailing list