wifi: iwlwifi: Ensure prph_mac dump includes all addresses
authorDaniel Gabay <daniel.gabay@intel.com>
Mon, 6 May 2024 07:04:19 +0000 (10:04 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 6 May 2024 14:33:26 +0000 (16:33 +0200)
In prph_mac_iter, ensure that all required addresses are dumped
even if a read fails. Currently, if a read fails, the region dump
is stopped, preventing the creation of prph_mac.lst.

By dumping all addresses even if a read fails, we can accurately
determine which addresses were successfully read and which were not.

Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
Reviewed-by: Eilon Rinat <eilon.rinat@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240506095953.31fa9ce91a1c.Ia0c86f70c7a6874c15ffc6f8235aa88530208546@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/dbg.c

index fe4e1bea30bba5d766680f6aa98f09f8aaf5a847..945ffc083d25c46bbf29e090f68e008dd8b15939 100644 (file)
@@ -1026,17 +1026,12 @@ static int iwl_dump_ini_prph_mac_iter_common(struct iwl_fw_runtime *fwrt,
 {
        struct iwl_fw_ini_error_dump_range *range = range_ptr;
        __le32 *val = range->data;
-       u32 prph_val;
        int i;
 
        range->internal_base_addr = cpu_to_le32(addr);
        range->range_data_size = size;
-       for (i = 0; i < le32_to_cpu(size); i += 4) {
-               prph_val = iwl_read_prph(fwrt->trans, addr + i);
-               if (iwl_trans_is_hw_error_value(prph_val))
-                       return -EBUSY;
-               *val++ = cpu_to_le32(prph_val);
-       }
+       for (i = 0; i < le32_to_cpu(size); i += 4)
+               *val++ = cpu_to_le32(iwl_read_prph(fwrt->trans, addr + i));
 
        return sizeof(*range) + le32_to_cpu(range->range_data_size);
 }