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