wifi: wireless: correct primary channel validation on 6 GHz
authorMordechay Goodstein <mordechay.goodstein@intel.com>
Wed, 1 Mar 2023 10:09:19 +0000 (12:09 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 7 Mar 2023 09:46:38 +0000 (10:46 +0100)
commitfb4b441c5d764813370e381310d9f82b38e7cd3f
tree5e38a4c92c94ebaed1f179ae8cb1e2a1d2666825
parent724a486cd24581928f4a82619806939119304645
wifi: wireless: correct primary channel validation on 6 GHz

The check that beacon primary channel is in the range of 80 MHz
(abs < 80) is invalid for 320 MHz since duplicate beacon transmit
means that the AP transmits it on all the 20 MHz sub-channels:

  9.4.2.249 HE Operation element - ... AP transmits Beacon frames in
  non-HT duplicate PPDU with a TXVECTOR parameter CH_BANDWIDTH value
  that is up to the BSS bandwidth.

So in case of 320 MHz the DUP beacon can be in upper 160 for primary
channel in the lower 160 giving possibly an absolute range of over
80 MHz.

Also this check is redundant alltogether, if AP has a wrong primary
channel in the beacon it's a faulty AP, and we would fail in next
steps to connect.

While at it, fix the frequency comparison to no longer compare
between KHz and MHz, which was introduced by commit 7f599aeccbd2
("cfg80211: Use the HE operation IE to determine a 6GHz BSS channel").

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.314faf725255.I5e27251ac558297553b590d3917a7b6d1aae0e74@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/scan.c