iwlwifi: dbg: treat dbgc allocation failure when tlv is missing
authorRotem Saado <rotem.saado@intel.com>
Sun, 17 Oct 2021 13:59:48 +0000 (16:59 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 22 Oct 2021 07:49:04 +0000 (10:49 +0300)
in case allocation tlv is missing for specific dbgc id,
treat it as allocation failure.
with this behavior we removing later the unsupported regions
relating to the failed dbgc allocation.
this saves operational driver memory and run time at collecting
debug data.

Signed-off-by: Rotem Saado <rotem.saado@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20211017165728.4cd241abf1de.I8f6cf00a7266675dfebdc01a73c1ac6e001855b9@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c

index 86927002076382ffa9fb285cf6a37942453abe0f..75d5ed0c32048b0ed6f44108e608c35e5c5f9d9a 100644 (file)
@@ -1149,8 +1149,10 @@ static void iwl_dbg_tlv_init_cfg(struct iwl_fw_runtime *fwrt)
                        &fwrt->trans->dbg.fw_mon_cfg[i];
                u32 dest = le32_to_cpu(fw_mon_cfg->buf_location);
 
-               if (dest == IWL_FW_INI_LOCATION_INVALID)
+               if (dest == IWL_FW_INI_LOCATION_INVALID) {
+                       failed_alloc |= BIT(i);
                        continue;
+               }
 
                if (*ini_dest == IWL_FW_INI_LOCATION_INVALID)
                        *ini_dest = dest;