]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mt76: mt7996: skip deflink accounting for offchannel links
authorLorenzo Bianconi <lorenzo@kernel.org>
Fri, 14 Nov 2025 13:16:24 +0000 (14:16 +0100)
committerFelix Fietkau <nbd@nbd.name>
Mon, 24 Nov 2025 13:59:13 +0000 (14:59 +0100)
Do not take into account offchannel links for deflink accounting.

Fixes: a3316d2fc669f ("wifi: mt76: mt7996: set vif default link_id adding/removing vif links")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Tested-by: Ben Greear <greearb@candelatech.com>
Link: https://patch.msgid.link/20251114-mt76-fix-missing-mtx-v1-4-259ebf11f654@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/main.c

index 79e5731d8f0d02f63e2a3cbad395befa17ed69d6..2a45db398fd597180c0b2bfc12e019b514f24fd6 100644 (file)
@@ -370,7 +370,8 @@ int mt7996_vif_link_add(struct mt76_phy *mphy, struct ieee80211_vif *vif,
 
        ieee80211_iter_keys(mphy->hw, vif, mt7996_key_iter, &it);
 
-       if (mvif->mt76.deflink_id == IEEE80211_LINK_UNSPECIFIED)
+       if (!mlink->wcid->offchannel &&
+           mvif->mt76.deflink_id == IEEE80211_LINK_UNSPECIFIED)
                mvif->mt76.deflink_id = link_conf->link_id;
 
        return 0;
@@ -401,7 +402,8 @@ void mt7996_vif_link_remove(struct mt76_phy *mphy, struct ieee80211_vif *vif,
 
        rcu_assign_pointer(dev->mt76.wcid[idx], NULL);
 
-       if (mvif->mt76.deflink_id == link_conf->link_id) {
+       if (!mlink->wcid->offchannel &&
+           mvif->mt76.deflink_id == link_conf->link_id) {
                struct ieee80211_bss_conf *iter;
                unsigned int link_id;