From owner-svn-src-user@FreeBSD.ORG Thu Oct 20 07:53:16 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 469B3106576A; Thu, 20 Oct 2011 07:53:16 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2D8108FC0C; Thu, 20 Oct 2011 07:53:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9K7rGSV063380; Thu, 20 Oct 2011 07:53:16 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9K7rGDk063377; Thu, 20 Oct 2011 07:53:16 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110200753.p9K7rGDk063377@svn.freebsd.org> From: Adrian Chadd Date: Thu, 20 Oct 2011 07:53:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226559 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Oct 2011 07:53:16 -0000 Author: adrian Date: Thu Oct 20 07:53:15 2011 New Revision: 226559 URL: http://svn.freebsd.org/changeset/base/226559 Log: Begin undoing the ath_reset() / ath_reset_locked() code. I can't hold locks here across the net80211 input routines or things will get somewhat messy. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c user/adrian/if_ath_tx/sys/dev/ath/if_ath_misc.h Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 07:24:33 2011 (r226558) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 07:53:15 2011 (r226559) @@ -1811,18 +1811,6 @@ ath_stop(struct ifnet *ifp) ATH_UNLOCK(sc); } -int -ath_reset(struct ifnet *ifp, ATH_RESET_TYPE reset_type) -{ - int r; - - struct ath_softc *sc = ifp->if_softc; - - ATH_LOCK(sc); - r = ath_reset_locked(ifp, reset_type); - ATH_UNLOCK(sc); - return r; -} /* * Reset the hardware w/o losing operational state. This is * basically a more efficient way of doing ath_stop, ath_init, @@ -1831,15 +1819,13 @@ ath_reset(struct ifnet *ifp, ATH_RESET_T * to reset or reload hardware state. */ int -ath_reset_locked(struct ifnet *ifp, ATH_RESET_TYPE reset_type) +ath_reset(struct ifnet *ifp, ATH_RESET_TYPE reset_type) { struct ath_softc *sc = ifp->if_softc; struct ieee80211com *ic = ifp->if_l2com; struct ath_hal *ah = sc->sc_ah; HAL_STATUS status; - ATH_LOCK_ASSERT(sc); - DPRINTF(sc, ATH_DEBUG_RESET, "%s: called\n", __func__); ath_hal_intrset(ah, 0); /* disable interrupts */ @@ -4981,8 +4967,6 @@ ath_startrecv(struct ath_softc *sc) struct ath_hal *ah = sc->sc_ah; struct ath_buf *bf; - ATH_LOCK_ASSERT(sc); - sc->sc_rxlink = NULL; sc->sc_rxpending = NULL; TAILQ_FOREACH(bf, &sc->sc_rxbuf, bf_list) { @@ -5011,7 +4995,6 @@ ath_chan_change(struct ath_softc *sc, st { enum ieee80211_phymode mode; - ATH_LOCK(sc); /* * Change channels and update the h/w rate map * if we're switching; e.g. 11a to 11b/g. @@ -5020,7 +5003,6 @@ ath_chan_change(struct ath_softc *sc, st if (mode != sc->sc_curmode) ath_setcurmode(sc, mode); sc->sc_curchan = chan; - ATH_UNLOCK(sc); } /* @@ -5138,7 +5120,7 @@ ath_calibrate(void *arg) DPRINTF(sc, ATH_DEBUG_CALIBRATE, "%s: rfgain change\n", __func__); sc->sc_stats.ast_per_rfgain++; - ath_reset_locked(ifp, ATH_RESET_NOLOSS); + ath_reset(ifp, ATH_RESET_NOLOSS); } /* * If this long cal is after an idle period, then @@ -5804,7 +5786,7 @@ ath_watchdog(void *arg) hangs & 0xff ? "bb" : "mac", hangs); } else if_printf(ifp, "device timeout\n"); - ath_reset_locked(ifp, ATH_RESET_NOLOSS); + ath_reset(ifp, ATH_RESET_NOLOSS); ifp->if_oerrors++; sc->sc_stats.ast_watchdog++; } Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_misc.h ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath_misc.h Thu Oct 20 07:24:33 2011 (r226558) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_misc.h Thu Oct 20 07:53:15 2011 (r226559) @@ -57,7 +57,6 @@ extern struct ath_buf * ath_buf_clone(st extern void ath_freebuf(struct ath_softc *sc, struct ath_buf *bf); extern int ath_reset(struct ifnet *, ATH_RESET_TYPE); -extern int ath_reset_locked(struct ifnet *, ATH_RESET_TYPE); extern void ath_tx_draintxq(struct ath_softc *sc, struct ath_txq *txq); extern void ath_tx_default_comp(struct ath_softc *sc, struct ath_buf *bf, int fail);