summary refs log tree commit diff
diff options
context:
space:
mode:
authorMordechay Goodstein <mordechay.goodstein@intel.com>2023-03-01 12:09:18 +0200
committerPierre-Loup A. Griffais <pgriffais@valvesoftware.com>2023-11-02 16:08:00 -0700
commit43df6f1f9d5c6ad17ad8cae8906d471ea5a4f0bb (patch)
tree6b741144d5d6f84b9dfe6991d2960c8cb2aa9646
parent3dd2c061d326803c1b676e0a0c05a0f75f1d0278 (diff)
downloadlinux-43df6f1f9d5c6ad17ad8cae8906d471ea5a4f0bb.tar.gz
wifi: wireless: return primary channel regardless of DUP
Currently in case DUP bit is not set we don't return the primary
channel for 6 GHz Band, but the spec says that the DUP bit has
no effect on this field:

9.4.2.249 HE Operation element:
The Duplicate Beacon subfield is set to 1 if the AP transmits
Beacon frames in non-HT duplicate PPDU with a TXVECTOR parameter
CH_BANDWIDTH value that is up to the BSS bandwidth and is set to
0 otherwise.

So remove the condition for returning primary channel based on DUP.

Since the caller code already marks the signal as invalid in case
the indicated frequency is not the tuned frequency, there's no need
to additionally handle this case here since that's already true for
duplicated beacons on the non-primary channel(s).

Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230301115906.66d7f05f7d11.I5e0add054f72ede95611391b99804c61c40cc959@changeid
[clarify commit message]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--net/wireless/scan.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 1165fa3bad1a..3a759de0c525 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -1876,9 +1876,7 @@ int cfg80211_get_ies_channel_number(const u8 *ie, size_t ielen,
 			if (!he_6ghz_oper)
 				return -1;
 
-			if (ftype != CFG80211_BSS_FTYPE_BEACON ||
-			    he_6ghz_oper->control & IEEE80211_HE_6GHZ_OPER_CTRL_DUP_BEACON)
-				return he_6ghz_oper->primary;
+			return he_6ghz_oper->primary;
 		}
 	} else if (band == NL80211_BAND_S1GHZ) {
 		tmp = cfg80211_find_elem(WLAN_EID_S1G_OPERATION, ie, ielen);