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>
 
                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)