summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/cfg.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index fe6500b36953..b0fdfc61b2f9 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1854,10 +1854,15 @@ static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev,
!sdata->u.mgd.associated)
return -EINVAL;
+ /*
+ * If we have a link ID, it can be a non-MLO station on an AP MLD,
+ * but we need to have a link_mac in that case as well, so use the
+ * STA's MAC address in that case.
+ */
if (params->link_sta_params.link_id >= 0)
sta = sta_info_alloc_with_link(sdata, mac,
params->link_sta_params.link_id,
- params->link_sta_params.link_mac,
+ params->link_sta_params.link_mac ?: mac,
GFP_KERNEL);
else
sta = sta_info_alloc(sdata, mac, GFP_KERNEL);