svn commit: r225648 - user/adrian/if_ath_tx/sys/dev/ath
Adrian Chadd
adrian at FreeBSD.org
Sun Sep 18 09:42:21 UTC 2011
Author: adrian
Date: Sun Sep 18 09:42:21 2011
New Revision: 225648
URL: http://svn.freebsd.org/changeset/base/225648
Log:
Move the lock around so it happens after the rate control update is done.
(That way the ath_node lock and txq lock aren't held at the same time.)
Modified:
user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c
Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Sun Sep 18 09:05:42 2011 (r225647)
+++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Sun Sep 18 09:42:21 2011 (r225648)
@@ -2813,10 +2813,6 @@ ath_tx_comp_aggr_error(struct ath_softc
struct ieee80211_tx_ampdu *tap;
ath_bufhead bf_cq;
- ATH_TXQ_LOCK(sc->sc_ac2q[tid->ac]);
-
- tap = ath_tx_get_tx_tid(an, tid->tid);
-
TAILQ_INIT(&bf_q);
TAILQ_INIT(&bf_cq);
sc->sc_stats.ast_tx_aggrfail++;
@@ -2832,6 +2828,9 @@ ath_tx_comp_aggr_error(struct ath_softc
bf_first->bf_state.bfs_pktlen,
bf_first->bf_state.bfs_nframes, bf_first->bf_state.bfs_nframes);
+ ATH_TXQ_LOCK(sc->sc_ac2q[tid->ac]);
+ tap = ath_tx_get_tx_tid(an, tid->tid);
+
/* Retry all subframes */
bf = bf_first;
while (bf) {
More information about the svn-src-user
mailing list