wifi: cfg80211: fix assoc response warning on failed links
authorJohannes Berg <johannes.berg@intel.com>
Wed, 18 Oct 2023 09:42:51 +0000 (11:42 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 23 Oct 2023 11:25:30 +0000 (13:25 +0200)
The warning here shouldn't be done before we even set the
bss field (or should've used the input data). Move the
assignment before the warning to fix it.

We noticed this now because of Wen's bugfix, where the bug
fixed there had previously hidden this other bug.

Fixes: 53ad07e9823b ("wifi: cfg80211: support reporting failed links")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/mlme.c

index 3e2c398..55a1d36 100644 (file)
@@ -43,10 +43,11 @@ void cfg80211_rx_assoc_resp(struct net_device *dev,
 
        for (link_id = 0; link_id < ARRAY_SIZE(data->links); link_id++) {
                cr.links[link_id].status = data->links[link_id].status;
+               cr.links[link_id].bss = data->links[link_id].bss;
+
                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;
                cr.links[link_id].bssid = data->links[link_id].bss->bssid;