mirror of https://gitee.com/openkylin/linux.git
iwlwifi: mvm: make sure state isn't in d0i3 when collecting fw dbg
This makes sure that we're not trying to read/write any of the FW debug data collected during d0i3. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Reviewed-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
This commit is contained in:
parent
bd9993182a
commit
fb2380a206
|
@ -1390,6 +1390,7 @@ static ssize_t iwl_dbgfs_d0i3_refs_read(struct file *file,
|
||||||
PRINT_MVM_REF(IWL_MVM_REF_TM_CMD);
|
PRINT_MVM_REF(IWL_MVM_REF_TM_CMD);
|
||||||
PRINT_MVM_REF(IWL_MVM_REF_EXIT_WORK);
|
PRINT_MVM_REF(IWL_MVM_REF_EXIT_WORK);
|
||||||
PRINT_MVM_REF(IWL_MVM_REF_PROTECT_CSA);
|
PRINT_MVM_REF(IWL_MVM_REF_PROTECT_CSA);
|
||||||
|
PRINT_MVM_REF(IWL_MVM_REF_FW_DBG_COLLECT);
|
||||||
|
|
||||||
return simple_read_from_buffer(user_buf, count, ppos, buf, pos);
|
return simple_read_from_buffer(user_buf, count, ppos, buf, pos);
|
||||||
}
|
}
|
||||||
|
|
|
@ -276,6 +276,7 @@ enum iwl_mvm_ref_type {
|
||||||
IWL_MVM_REF_TM_CMD,
|
IWL_MVM_REF_TM_CMD,
|
||||||
IWL_MVM_REF_EXIT_WORK,
|
IWL_MVM_REF_EXIT_WORK,
|
||||||
IWL_MVM_REF_PROTECT_CSA,
|
IWL_MVM_REF_PROTECT_CSA,
|
||||||
|
IWL_MVM_REF_FW_DBG_COLLECT,
|
||||||
|
|
||||||
/* update debugfs.c when changing this */
|
/* update debugfs.c when changing this */
|
||||||
|
|
||||||
|
|
|
@ -818,9 +818,14 @@ static void iwl_mvm_fw_error_dump_wk(struct work_struct *work)
|
||||||
struct iwl_mvm *mvm =
|
struct iwl_mvm *mvm =
|
||||||
container_of(work, struct iwl_mvm, fw_error_dump_wk);
|
container_of(work, struct iwl_mvm, fw_error_dump_wk);
|
||||||
|
|
||||||
|
if (iwl_mvm_ref_sync(mvm, IWL_MVM_REF_FW_DBG_COLLECT))
|
||||||
|
return;
|
||||||
|
|
||||||
mutex_lock(&mvm->mutex);
|
mutex_lock(&mvm->mutex);
|
||||||
iwl_mvm_fw_error_dump(mvm);
|
iwl_mvm_fw_error_dump(mvm);
|
||||||
mutex_unlock(&mvm->mutex);
|
mutex_unlock(&mvm->mutex);
|
||||||
|
|
||||||
|
iwl_mvm_unref(mvm, IWL_MVM_REF_FW_DBG_COLLECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error)
|
void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error)
|
||||||
|
|
Loading…
Reference in New Issue