summaryrefslogtreecommitdiff
path: root/net/wireless/scan.c
diff options
context:
space:
mode:
authorBenjamin Berg <benjamin.berg@intel.com>2023-06-18 21:49:54 +0300
committerJohannes Berg <johannes.berg@intel.com>2023-06-19 12:08:40 +0200
commita0ed50112b98fa8e9bc85dbeafc82fd97ee06716 (patch)
tree29ae94f2047c82aa9e663114ce175cfd11173717 /net/wireless/scan.c
parent2481b5da9c6b2ee1fde55a1c29eb2ca377145a10 (diff)
wifi: cfg80211: do not scan disabled links on 6GHz
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>
Diffstat (limited to 'net/wireless/scan.c')
-rw-r--r--net/wireless/scan.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 2e7787b0828b..df868662e1e0 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -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;