summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt7925/main.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/main.c b/drivers/net/wireless/mediatek/mt76/mt7925/main.c
index c65e32a14c01..d7a09a0a79fb 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7925/main.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7925/main.c
@@ -927,8 +927,17 @@ static int mt7925_mac_link_sta_add(struct mt76_dev *mdev,
} else if (ieee80211_vif_is_mld(vif) &&
link_sta != mlink->pri_link) {
struct mt792x_link_sta *pri_mlink;
+ struct mt76_wcid *pri_wcid;
- pri_mlink = mt792x_sta_to_link(msta, mlink->pri_link->link_id);
+ /* alternative lookup via def_wcid */
+ pri_wcid = mlink->wcid.def_wcid;
+
+ pri_mlink = pri_wcid ?
+ container_of(pri_wcid, struct mt792x_link_sta, wcid) :
+ NULL;
+
+ if (WARN_ON_ONCE(!pri_mlink))
+ return -EINVAL;
ret = mt7925_mcu_sta_update(dev, mlink->pri_link, vif,
pri_mlink, true,