Date: Mon, 9 Feb 2009 03:34:36 +0000 (UTC) From: Pyun YongHyeon <yongari@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org Subject: svn commit: r188369 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb dev/fxp Message-ID: <200902090334.n193Yakm043810@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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. */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200902090334.n193Yakm043810>