}
if (mvif) {
- struct mt76_vif_link *mlink = &mvif->deflink.mt76;
+ struct mt76_vif_link *mlink;
- if (link_id < IEEE80211_LINK_UNSPECIFIED)
- mlink = rcu_dereference(mvif->mt76.link[link_id]);
-
- if (mlink->wcid)
+ mlink = rcu_dereference(mvif->mt76.link[link_id]);
+ if (mlink && mlink->wcid)
wcid = mlink->wcid;
if (mvif->mt76.roc_phy &&
mphy = mvif->mt76.roc_phy;
if (mphy->roc_link)
wcid = mphy->roc_link->wcid;
- } else {
+ } else if (mlink) {
mphy = mt76_vif_link_phy(mlink);
}
}
goto unlock;
}
- if (msta && link_id < IEEE80211_LINK_UNSPECIFIED) {
+ if (msta) {
struct mt7996_sta_link *msta_link;
msta_link = rcu_dereference(msta->link[link_id]);