wifi: cfg80211: do not scan disabled links on 6GHz
authorBenjamin Berg <benjamin.berg@intel.com>
Sun, 18 Jun 2023 18:49:54 +0000 (21:49 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 19 Jun 2023 10:08:40 +0000 (12:08 +0200)
If a link is disabled on 6GHz, we should not send a probe request on the
channel to resolve it. Simply skip such RNR entries so that the link is
ignored.

Userspace can still see the link in the RNR and may generate an ML probe
request in order to associate to the (currently) disabled link.

Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230618214436.4f7384006471.Iff8f1081e76a298bd25f9468abb3a586372cddaa@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/scan.c

index 2e7787b0828bf6bf4ce294d339982cea011c735d..df868662e1e056bc1eb8c2f76ef79888f845803f 100644 (file)
@@ -587,6 +587,13 @@ static int cfg80211_parse_ap_info(struct cfg80211_colocated_ap *entry,
                entry->short_ssid_valid = true;
 
                bss_params = tbtt_info->bss_params;
+
+               /* Ignore disabled links */
+               if (length >= offsetofend(typeof(*tbtt_info), mld_params)) {
+                       if (le16_get_bits(tbtt_info->mld_params.params,
+                                         IEEE80211_RNR_MLD_PARAMS_DISABLED_LINK))
+                               return -EINVAL;
+               }
        } else {
                struct ieee80211_tbtt_info_7_8_9 *tbtt_info = (void *)pos;