kern/165220: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Fri Feb 17 03:30:15 UTC 2012
The following reply was made to PR kern/165220; it has been noted by GNATS.
From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: kern/165220: commit references a PR
Date: Fri, 17 Feb 2012 03:23:16 +0000 (UTC)
Author: adrian
Date: Fri Feb 17 03:23:01 2012
New Revision: 231854
URL: http://svn.freebsd.org/changeset/base/231854
Log:
Begin breaking out the txrx stop code into a locked and unlocked variant.
PR: kern/165220
Modified:
head/sys/dev/ath/if_ath.c
Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c Fri Feb 17 03:01:29 2012 (r231853)
+++ head/sys/dev/ath/if_ath.c Fri Feb 17 03:23:01 2012 (r231854)
@@ -1903,15 +1903,16 @@ ath_stop_locked(struct ifnet *ifp)
#define MAX_TXRX_ITERATIONS 1000
static void
-ath_txrx_stop(struct ath_softc *sc)
+ath_txrx_stop_locked(struct ath_softc *sc)
{
int i = MAX_TXRX_ITERATIONS;
ATH_UNLOCK_ASSERT(sc);
+ ATH_PCU_LOCK_ASSERT(sc);
+
/* Stop any new TX/RX from occuring */
taskqueue_block(sc->sc_tq);
- ATH_PCU_LOCK(sc);
/*
* Sleep until all the pending operations have completed.
*
@@ -1925,7 +1926,6 @@ ath_txrx_stop(struct ath_softc *sc)
msleep(sc, &sc->sc_pcu_mtx, 0, "ath_txrx_stop", 1);
i--;
}
- ATH_PCU_UNLOCK(sc);
if (i <= 0)
device_printf(sc->sc_dev,
@@ -1935,6 +1935,17 @@ ath_txrx_stop(struct ath_softc *sc)
#undef MAX_TXRX_ITERATIONS
static void
+ath_txrx_stop(struct ath_softc *sc)
+{
+ ATH_UNLOCK_ASSERT(sc);
+ ATH_PCU_UNLOCK_ASSERT(sc);
+
+ ATH_PCU_LOCK(sc);
+ ath_txrx_stop_locked(sc);
+ ATH_PCU_UNLOCK(sc);
+}
+
+static void
ath_txrx_start(struct ath_softc *sc)
{
_______________________________________________
svn-src-all at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
More information about the freebsd-bugs
mailing list