wifi: iwlwifi: mvm: don't try to talk to a dead firmware
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Sun, 9 Feb 2025 12:34:49 +0000 (14:34 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 11 Feb 2025 11:41:46 +0000 (12:41 +0100)
This fixes:

 bad state = 0
 WARNING: CPU: 10 PID: 702 at drivers/net/wireless/inel/iwlwifi/iwl-trans.c:178 iwl_trans_send_cmd+0xba/0xe0 [iwlwifi]
 Call Trace:
  <TASK>
  ? __warn+0xca/0x1c0
  ? iwl_trans_send_cmd+0xba/0xe0 [iwlwifi 64fa9ad799a0e0d2ba53d4af93a53ad9a531f8d4]
  iwl_fw_dbg_clear_monitor_buf+0xd7/0x110 [iwlwifi 64fa9ad799a0e0d2ba53d4af93a53ad9a531f8d4]
  _iwl_dbgfs_fw_dbg_clear_write+0xe2/0x120 [iwlmvm 0e8adb18cea92d2c341766bcc10b18699290068a]

Ask whether the firmware is alive before sending a command.

Fixes: 268712dc3b34 ("wifi: iwlwifi: mvm: add a debugfs hook to clear the monitor data")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250209143303.8e1597b62c70.I12ea71dd9b805b095c9fc12a10c9f34a4e801b61@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c

index 83e3c116036220ba92671810fea7a95c95dd17c7..55d035b896e91df0c330e017fbf32de489ae1a68 100644 (file)
@@ -1479,6 +1479,13 @@ static ssize_t iwl_dbgfs_fw_dbg_clear_write(struct iwl_mvm *mvm,
        if (mvm->trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_9000)
                return -EOPNOTSUPP;
 
+       /*
+        * If the firmware is not running, silently succeed since there is
+        * no data to clear.
+        */
+       if (!iwl_mvm_firmware_running(mvm))
+               return count;
+
        mutex_lock(&mvm->mutex);
        iwl_fw_dbg_clear_monitor_buf(&mvm->fwrt);
        mutex_unlock(&mvm->mutex);