diff options
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/debugfs.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mvm.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/ops.c | 5 |
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 | ||
826 | void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error) | 831 | void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error) |