aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/debugfs.c1
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mvm.h1
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/ops.c5
3 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/debugfs.c b/drivers/net/wireless/iwlwifi/mvm/debugfs.c
index a1b276c4dee0..f1b3405c44bd 100644
--- a/drivers/net/wireless/iwlwifi/mvm/debugfs.c
+++ b/drivers/net/wireless/iwlwifi/mvm/debugfs.c
@@ -1390,6 +1390,7 @@ static ssize_t iwl_dbgfs_d0i3_refs_read(struct file *file,
1390 PRINT_MVM_REF(IWL_MVM_REF_TM_CMD); 1390 PRINT_MVM_REF(IWL_MVM_REF_TM_CMD);
1391 PRINT_MVM_REF(IWL_MVM_REF_EXIT_WORK); 1391 PRINT_MVM_REF(IWL_MVM_REF_EXIT_WORK);
1392 PRINT_MVM_REF(IWL_MVM_REF_PROTECT_CSA); 1392 PRINT_MVM_REF(IWL_MVM_REF_PROTECT_CSA);
1393 PRINT_MVM_REF(IWL_MVM_REF_FW_DBG_COLLECT);
1393 1394
1394 return simple_read_from_buffer(user_buf, count, ppos, buf, pos); 1395 return simple_read_from_buffer(user_buf, count, ppos, buf, pos);
1395} 1396}
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h
index b2100b414055..c95297e1f836 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mvm.h
+++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h
@@ -276,6 +276,7 @@ enum iwl_mvm_ref_type {
276 IWL_MVM_REF_TM_CMD, 276 IWL_MVM_REF_TM_CMD,
277 IWL_MVM_REF_EXIT_WORK, 277 IWL_MVM_REF_EXIT_WORK,
278 IWL_MVM_REF_PROTECT_CSA, 278 IWL_MVM_REF_PROTECT_CSA,
279 IWL_MVM_REF_FW_DBG_COLLECT,
279 280
280 /* update debugfs.c when changing this */ 281 /* update debugfs.c when changing this */
281 282
diff --git a/drivers/net/wireless/iwlwifi/mvm/ops.c b/drivers/net/wireless/iwlwifi/mvm/ops.c
index 239f033e3b93..b0583fc227a7 100644
--- a/drivers/net/wireless/iwlwifi/mvm/ops.c
+++ b/drivers/net/wireless/iwlwifi/mvm/ops.c
@@ -818,9 +818,14 @@ static void iwl_mvm_fw_error_dump_wk(struct work_struct *work)
818 struct iwl_mvm *mvm = 818 struct iwl_mvm *mvm =
819 container_of(work, struct iwl_mvm, fw_error_dump_wk); 819 container_of(work, struct iwl_mvm, fw_error_dump_wk);
820 820
821 if (iwl_mvm_ref_sync(mvm, IWL_MVM_REF_FW_DBG_COLLECT))
822 return;
823
821 mutex_lock(&mvm->mutex); 824 mutex_lock(&mvm->mutex);
822 iwl_mvm_fw_error_dump(mvm); 825 iwl_mvm_fw_error_dump(mvm);
823 mutex_unlock(&mvm->mutex); 826 mutex_unlock(&mvm->mutex);
827
828 iwl_mvm_unref(mvm, IWL_MVM_REF_FW_DBG_COLLECT);
824} 829}
825 830
826void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error) 831void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error)