summaryrefslogtreecommitdiff
path: root/net/wireless/mlme.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2022-09-06 12:27:57 +0300
committerJohannes Berg <johannes.berg@intel.com>2022-10-07 16:23:48 +0300
commit53ad07e9823bca10c26e71d662b58c3e80e8ff2a (patch)
tree87f5f4a779c8a37a82e6f2698c7fb666296f60d2 /net/wireless/mlme.c
parent9b41a9d7dca0159723172a47097b3f2352e37e44 (diff)
downloadlinux-53ad07e9823bca10c26e71d662b58c3e80e8ff2a.tar.xz
wifi: cfg80211: support reporting failed links
For assoc and connect result APIs, support reporting failed links; they should still come with the BSS pointer in the case of assoc, so they're released correctly. In the case of connect result, this is optional. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/mlme.c')
-rw-r--r--net/wireless/mlme.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c
index 581df7f4c524..58e1fb18f85a 100644
--- a/net/wireless/mlme.c
+++ b/net/wireless/mlme.c
@@ -42,6 +42,10 @@ void cfg80211_rx_assoc_resp(struct net_device *dev,
unsigned int link_id;
for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) {
+ cr.links[link_id].status = data->links[link_id].status;
+ WARN_ON_ONCE(cr.links[link_id].status != WLAN_STATUS_SUCCESS &&
+ (!cr.ap_mld_addr || !cr.links[link_id].bss));
+
cr.links[link_id].bss = data->links[link_id].bss;
if (!cr.links[link_id].bss)
continue;