aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ath/if_ath_tx.c
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2014-04-08 07:00:43 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2014-04-08 07:00:43 +0000
commita3fd3b1429ae6bc1374155b903410f1c0b7582b4 (patch)
treef8d0a2db70a792ebb3264eff2042ba1d935d3c62 /sys/dev/ath/if_ath_tx.c
parent9e63671c57a3a18134bd37350349edf113faa51d (diff)
Notes
Diffstat (limited to 'sys/dev/ath/if_ath_tx.c')
-rw-r--r--sys/dev/ath/if_ath_tx.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/dev/ath/if_ath_tx.c b/sys/dev/ath/if_ath_tx.c
index 0c3808c91296..acd14846ca63 100644
--- a/sys/dev/ath/if_ath_tx.c
+++ b/sys/dev/ath/if_ath_tx.c
@@ -3357,6 +3357,7 @@ static void
ath_tx_tid_filt_comp_complete(struct ath_softc *sc, struct ath_tid *tid)
{
struct ath_buf *bf;
+ int do_resume = 0;
ATH_TX_LOCK_ASSERT(sc);
@@ -3365,7 +3366,11 @@ ath_tx_tid_filt_comp_complete(struct ath_softc *sc, struct ath_tid *tid)
DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, "%s: hwq=0, transition back\n",
__func__);
- tid->isfiltered = 0;
+ if (tid->isfiltered == 1) {
+ tid->isfiltered = 0;
+ do_resume = 1;
+ }
+
/* XXX ath_tx_tid_resume() also calls ath_tx_set_clrdmask()! */
ath_tx_set_clrdmask(sc, tid->an);
@@ -3375,7 +3380,8 @@ ath_tx_tid_filt_comp_complete(struct ath_softc *sc, struct ath_tid *tid)
ATH_TID_INSERT_HEAD(tid, bf, bf_list);
}
- ath_tx_tid_resume(sc, tid);
+ if (do_resume)
+ ath_tx_tid_resume(sc, tid);
}
/*