mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: mt7996: Decrement sta counter removing the link in mt7996_mac_reset_sta_iter()
Fixes tracking per-phy stations for offchannel switching.
Fixes: ace5d3b6b49e8 ("wifi: mt76: mt7996: improve hardware restart reliability")
Signed-off-by: Lorenzo Bianconi <[email protected]>
Link: https://patch.msgid.link/20260308-mt7996_mac_reset_vif_iter-fix-v1-1-57f640aa2dcf@kernel.org
Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
committed by
Felix Fietkau
parent
a665659dee
commit
1b26f5f63d
@@ -2374,6 +2374,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));
|
||||
@@ -2381,6 +2382,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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user