]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: iwlwifi: validate the channels received in iwl_mcc_update_resp_v*
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Fri, 20 Mar 2026 08:09:13 +0000 (10:09 +0200)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Wed, 25 Mar 2026 09:31:57 +0000 (11:31 +0200)
Check with IWL_FW_CHECK that the FW doesn't send a channel that we don't
support. Otherwise, the center frequency will be 0, leading to a
warning since is_valid_reg_rule will return false, of course.
Although the warning is verbose enough, the IWL_FW_CHECK will spare some
of the debug.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260320100746.0e83cdd88cea.Ic86852e622ed3ec06110f9e6525f72679236cf1e@changeid
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c

index e5b08c4e7f159c485ee1ebb8cb89dd7a4b222208..8f3f651451bb9c436deada4208465b1395a6e274 100644 (file)
@@ -23,6 +23,8 @@
 #include "fw/api/commands.h"
 #include "fw/api/cmdhdr.h"
 #include "fw/img.h"
+#include "fw/dbg.h"
+
 #include "mei/iwl-mei.h"
 
 /* NVM offsets (in words) definitions */
@@ -1702,6 +1704,11 @@ iwl_parse_nvm_mcc_info(struct iwl_trans *trans,
                                                             band);
                new_rule = false;
 
+               if (IWL_FW_CHECK(trans, !center_freq,
+                                "Invalid channel %d (idx %d) in NVM\n",
+                                nvm_chan[ch_idx], ch_idx))
+                       continue;
+
                if (!(ch_flags & NVM_CHANNEL_VALID)) {
                        iwl_nvm_print_channel_flags(dev, IWL_DL_LAR,
                                                    nvm_chan[ch_idx], ch_flags);