Do not set vif deflink in mt7996_vif_link_add routine if the vif txq pointer is NULL in order to not miss the mtxq wcid field update adding a new link with a valid vif txq pointer. Fixes: b25fd88d7133d ("wifi: mt76: mt7996: Set mtxq->wcid just for primary link") Signed-off-by: Lorenzo Bianconi --- drivers/net/wireless/mediatek/mt76/mt7996/main.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/main.c b/drivers/net/wireless/mediatek/mt76/mt7996/main.c index e76643b8234b6323fa53f1f5958e23b5adc99c72..b659d173268981f25344be4b3176a1e7636db7a4 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/main.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/main.c @@ -365,15 +365,12 @@ 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 && + if (vif->txq && !mlink->wcid->offchannel && mvif->mt76.deflink_id == IEEE80211_LINK_UNSPECIFIED) { - if (vif->txq) { - struct mt76_txq *mtxq; + struct mt76_txq *mtxq = (struct mt76_txq *)vif->txq->drv_priv; - mtxq = (struct mt76_txq *)vif->txq->drv_priv; - mtxq->wcid = idx; - } mvif->mt76.deflink_id = link_conf->link_id; + mtxq->wcid = idx; } return 0; -- 2.53.0