diff options
author | Johannes Berg <johannes.berg@intel.com> | 2022-07-14 23:40:47 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2022-07-15 11:43:23 +0200 |
commit | f36fe0a2df03209f4d681fa954f20bfa4eefec45 (patch) | |
tree | 3d653b4e037d82bfef7f773c12b34f3494d73ad2 /net/mac80211/cfg.c | |
parent | wifi: mac80211_hwsim: implement sta_state for MLO (diff) | |
download | linux-f36fe0a2df03209f4d681fa954f20bfa4eefec45.tar.xz linux-f36fe0a2df03209f4d681fa954f20bfa4eefec45.zip |
wifi: mac80211: fix up link station creation/insertion
When we create a station with a non-default link, then
we should have a link address, and we definitely need
to insert it into the link hash table on insertion.
Split the API into with and without link creation and
if it has a link, insert the link into the link hash
table on sta_info_insert().
Fixes: ba6ddab94fc6 ("wifi: mac80211: maintain link-sta hash table")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r-- | net/mac80211/cfg.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 1545648e2031..1cacd1e0fc85 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -1850,8 +1850,14 @@ static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev, !sdata->u.mgd.associated) return -EINVAL; - sta = sta_info_alloc(sdata, mac, params->link_sta_params.link_id, - GFP_KERNEL); + 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, + GFP_KERNEL); + else + sta = sta_info_alloc(sdata, mac, GFP_KERNEL); + if (!sta) return -ENOMEM; |