diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-08-06 14:18:09 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-08-09 15:58:15 -0400 |
commit | 897d7fd9b5f1bee657d000b882c642541bb2ba3e (patch) | |
tree | 90932eadea3a5d68f63ef6d983ee4abfad457431 | |
parent | 73364b0c470a9c0361a389f3460357a7c7ffd75d (diff) | |
download | linux-897d7fd9b5f1bee657d000b882c642541bb2ba3e.tar.bz2 |
ath9k: fix clearing expired A-MPDU subframes in tx completion
When the tid aggregation state has been marked as inactive, free
completed tx packets immediately. When a new aggregation session has not
been initialized yet, the BAW checks do not recognize it as expired.
Might fix potential stalls in setting up a new aggregation session.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/xmit.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index e69f7fef7887..3ede3e95a751 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c @@ -520,7 +520,8 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq, tx_info = IEEE80211_SKB_CB(skb); fi = get_frame_info(skb); - if (!BAW_WITHIN(tid->seq_start, tid->baw_size, seqno)) { + if (!BAW_WITHIN(tid->seq_start, tid->baw_size, seqno) || + !tid->active) { /* * Outside of the current BlockAck window, * maybe part of a previous session |