]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: mt76: mt7996: Decrement sta counter removing the link in mt7996_mac_reset_sta_i...
authorLorenzo Bianconi <lorenzo@kernel.org>
Sun, 8 Mar 2026 13:25:20 +0000 (14:25 +0100)
committerFelix Fietkau <nbd@nbd.name>
Tue, 24 Mar 2026 15:49:30 +0000 (15:49 +0000)
Fixes tracking per-phy stations for offchannel switching.

Fixes: ace5d3b6b49e8 ("wifi: mt76: mt7996: improve hardware restart reliability")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/20260308-mt7996_mac_reset_vif_iter-fix-v1-1-57f640aa2dcf@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/mac.c

index 7587e7b4e8fedc1058dd2de8d069e49253a32739..be70c0f4fc3038a2a2cc1722a77191fc3f2acda3 100644 (file)
@@ -2366,6 +2366,7 @@ mt7996_mac_reset_sta_iter(void *data, struct ieee80211_sta *sta)
 
        for (i = 0; i < ARRAY_SIZE(msta->link); i++) {
                struct mt7996_sta_link *msta_link = NULL;
+               struct mt7996_phy *phy;
 
                msta_link = rcu_replace_pointer(msta->link[i], msta_link,
                                                lockdep_is_held(&dev->mt76.mutex));
@@ -2373,6 +2374,10 @@ mt7996_mac_reset_sta_iter(void *data, struct ieee80211_sta *sta)
                        continue;
 
                mt7996_mac_sta_deinit_link(dev, msta_link);
+               phy = __mt7996_phy(dev, msta_link->wcid.phy_idx);
+               if (phy)
+                       phy->mt76->num_sta--;
+
                if (msta_link != &msta->deflink)
                        kfree_rcu(msta_link, rcu_head);
        }