On 2020-09-18 03:40, Johannes Berg wrote:
On Mon, 2020-08-31 at 13:55 -0700, Thomas Pedersen wrote:
An S1G BSS can beacon at either 1 or 2 MHz and the channel
width is unique to a given frequency. Ignore scan channel
width for now and use the allowed channel width.
Signed-off-by: Thomas Pedersen <thomas@xxxxxxxxxxxx>
---
net/mac80211/scan.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
index 5ac2785cdc7b..5002791fe165 100644
--- a/net/mac80211/scan.c
+++ b/net/mac80211/scan.c
@@ -905,6 +905,17 @@ static void
ieee80211_scan_state_set_channel(struct ieee80211_local *local,
local->scan_chandef.center_freq1 = chan->center_freq;
local->scan_chandef.freq1_offset = chan->freq_offset;
local->scan_chandef.center_freq2 = 0;
+
+ /* For scanning on the S1G band, ignore scan_width (which is
constant
+ * across all channels) for now since channel width is specific to
each
+ * channel. Detect the required channel width here and likely
revisit
+ * later. Maybe scan_width could be used to build the channel scan
list?
+ */
+ if (chan->band == NL80211_BAND_S1GHZ) {
+ local->scan_chandef.width = ieee80211_s1g_channel_width(chan);
+ goto set_channel;
+ }
nit: double space after 'goto'
but really I came to say that this probably changes then, if you don't
convince me about the stuff in the previous patch review? :)
So I'm leaving this patch also for now - have applied 1-5 so far.
Thanks. I'm not really sure what else would make sense here?
scan_req->scan_width is constant across all channels in
scan_req->channels so for S1G we can either filter the scan_req channels
list based on scan_width (kind of strange and unexpected), or deduce the
correct chanenl width for each channel in the list and ignore scan_width
(mostly correct). It seems like scan_width is currently only used for
scanning at 5 or 10MHz anyway?
--
thomas