wifi: iwlwifi: mvm: allow 6 GHz channels in MLO scan
authorAvraham Stern <avraham.stern@intel.com>
Sun, 25 Aug 2024 16:17:12 +0000 (19:17 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 26 Aug 2024 15:41:45 +0000 (17:41 +0200)
MLO internal scan may include 6 GHz channels. Since the 6 GHz scan
indication is not set, the channel flags are set incorrectly, which
leads to a firmware assert.
Since the MLO scan may include 6 GHz and non 6 GHz channels in one
request, add support for non-PSC 6 GHz channels (PSC channels are
already supported) when the 6 GHz indication is not set.

Fixes: 38b3998dfba3 ("wifi: iwlwifi: mvm: Introduce internal MLO passive scan")
Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240825191257.04807f8213b2.Idd09d4366df92a74853649c1a520b7f0f752d1ac@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/scan.c

index bae6aec8295c37ea56adf53557cea24c0c4ce0db..1cc9c426bb1599eeaf830ca0c34987720c9e366d 100644 (file)
@@ -1659,6 +1659,17 @@ iwl_mvm_umac_scan_cfg_channels_v7(struct iwl_mvm *mvm,
                cfg->v2.channel_num = channels[i]->hw_value;
                if (cfg80211_channel_is_psc(channels[i]))
                        cfg->flags = 0;
+
+               if (band == NL80211_BAND_6GHZ) {
+                       /* 6 GHz channels should only appear in a scan request
+                        * that has scan_6ghz set. The only exception is MLO
+                        * scan, which has to be passive.
+                        */
+                       WARN_ON_ONCE(cfg->flags != 0);
+                       cfg->flags =
+                               cpu_to_le32(IWL_UHB_CHAN_CFG_FLAG_FORCE_PASSIVE);
+               }
+
                cfg->v2.iter_count = 1;
                cfg->v2.iter_interval = 0;
                if (version < 17)