From owner-svn-src-all@FreeBSD.ORG Mon Feb 9 03:34:36 2009 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 421EB106570D; Mon, 9 Feb 2009 03:34:36 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2EC1F8FC16; Mon, 9 Feb 2009 03:34:36 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n193YaJx043811; Mon, 9 Feb 2009 03:34:36 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n193Yakm043810; Mon, 9 Feb 2009 03:34:36 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <200902090334.n193Yakm043810@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 9 Feb 2009 03:34:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r188369 - in stable/7/sys: . contrib/pf dev/ath/ath_hal dev/cxgb dev/fxp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Feb 2009 03:34:38 -0000 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. */