]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: mt76: mt7996: Set mtxq->wcid just for primary link
authorLorenzo Bianconi <lorenzo@kernel.org>
Fri, 5 Dec 2025 10:24:36 +0000 (11:24 +0100)
committerFelix Fietkau <nbd@nbd.name>
Mon, 23 Mar 2026 09:20:56 +0000 (09:20 +0000)
Set WCID index in mt76_txq struct just for the primary link in
mt7996_vif_link_add routine.

Fixes: 69d54ce7491d0 ("wifi: mt76: mt7996: switch to single multi-radio wiphy")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Link: https://patch.msgid.link/20251205-mt76-txq-wicd-fix-v2-1-f19ba48af7c1@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7996/main.c

index 393823368bed2f51bbcdf877a81c4e5c7ede175e..d646d1ef8f82b473f7e9c44d65f84afb52b7c34a 100644 (file)
@@ -301,7 +301,6 @@ int mt7996_vif_link_add(struct mt76_phy *mphy, struct ieee80211_vif *vif,
                .cmd = SET_KEY,
                .link_id = link_conf->link_id,
        };
-       struct mt76_txq *mtxq;
        int mld_idx, idx, ret;
 
        mlink->idx = __ffs64(~dev->mt76.vif_mask);
@@ -344,11 +343,6 @@ int mt7996_vif_link_add(struct mt76_phy *mphy, struct ieee80211_vif *vif,
        mt7996_mac_wtbl_update(dev, idx,
                               MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
 
-       if (vif->txq) {
-               mtxq = (struct mt76_txq *)vif->txq->drv_priv;
-               mtxq->wcid = idx;
-       }
-
        if (vif->type != NL80211_IFTYPE_AP &&
            (!mlink->omac_idx || mlink->omac_idx > 3))
                vif->offload_flags = 0;
@@ -371,9 +365,13 @@ int mt7996_vif_link_add(struct mt76_phy *mphy, struct ieee80211_vif *vif,
 
        ieee80211_iter_keys(mphy->hw, vif, mt7996_key_iter, &it);
 
-       if (!mlink->wcid->offchannel &&
-           mvif->mt76.deflink_id == IEEE80211_LINK_UNSPECIFIED)
+       if (vif->txq && !mlink->wcid->offchannel &&
+           mvif->mt76.deflink_id == IEEE80211_LINK_UNSPECIFIED) {
+               struct mt76_txq *mtxq = (struct mt76_txq *)vif->txq->drv_priv;
+
                mvif->mt76.deflink_id = link_conf->link_id;
+               mtxq->wcid = idx;
+       }
 
        return 0;
 }