From: Felix Fietkau Date: Tue, 6 Aug 2013 12:18:09 +0000 (+0200) Subject: ath9k: fix clearing expired A-MPDU subframes in tx completion X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=897d7fd9b5f1bee657d000b882c642541bb2ba3e;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git 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 Signed-off-by: John W. Linville --- 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