]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: mt76: mt7996: Reset ampdu_state state in case of failure in mt7996_tx_check_aggr()
authorLorenzo Bianconi <lorenzo@kernel.org>
Sun, 14 Dec 2025 09:55:30 +0000 (10:55 +0100)
committerFelix Fietkau <nbd@nbd.name>
Mon, 23 Mar 2026 09:21:24 +0000 (09:21 +0000)
Reset the ampdu_state configured state if ieee80211_start_tx_ba_session
routine fails in mt7996_tx_check_aggr()

Fixes: 98686cd21624c ("wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/20251214-mt7996-aggr-check-fix-v1-1-33a8b62ec0fc@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/mac.c

index cf7b0f290328ff6a8519fb4eb213e14e0c42d5c8..0ca908b87a467e2171a2bc03afbe49336ee52b27 100644 (file)
@@ -1231,8 +1231,9 @@ mt7996_tx_check_aggr(struct ieee80211_link_sta *link_sta,
        if (unlikely(fc != (IEEE80211_FTYPE_DATA | IEEE80211_STYPE_QOS_DATA)))
                return;
 
-       if (!test_and_set_bit(tid, &wcid->ampdu_state))
-               ieee80211_start_tx_ba_session(link_sta->sta, tid, 0);
+       if (!test_and_set_bit(tid, &wcid->ampdu_state) &&
+           ieee80211_start_tx_ba_session(link_sta->sta, tid, 0))
+               clear_bit(tid, &wcid->ampdu_state);
 }
 
 static void