wifi: iwlwifi: pcie: clear FW debug memory on init
authorJohannes Berg <johannes.berg@intel.com>
Tue, 13 Jun 2023 12:57:25 +0000 (15:57 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 14 Jun 2023 10:32:21 +0000 (12:32 +0200)
When we restart the firmware, we shouldn't keep old debug data
around. Since the "allocate" function might not reallocate the
memory block (it's only freed when we unbind from the device),
clear the memory to have a clean slate for debug data.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230613155501.73c32255a132.Ibd7101dcd285b01ee879fddfbf52c30d49ced3c0@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/pcie/trans.c

index 7240bec..84e832f 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
 /*
- * Copyright (C) 2007-2015, 2018-2022 Intel Corporation
+ * Copyright (C) 2007-2015, 2018-2023 Intel Corporation
  * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
  * Copyright (C) 2016-2017 Intel Deutschland GmbH
  */
@@ -171,8 +171,10 @@ static void iwl_pcie_alloc_fw_monitor_block(struct iwl_trans *trans,
        u32 size = 0;
        u8 power;
 
-       if (fw_mon->size)
+       if (fw_mon->size) {
+               memset(fw_mon->block, 0, fw_mon->size);
                return;
+       }
 
        for (power = max_power; power >= min_power; power--) {
                size = BIT(power);
@@ -215,9 +217,6 @@ void iwl_pcie_alloc_fw_monitor(struct iwl_trans *trans, u8 max_power)
                 max_power))
                return;
 
-       if (trans->dbg.fw_mon.size)
-               return;
-
        iwl_pcie_alloc_fw_monitor_block(trans, max_power, 11);
 }