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.
                 */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to