Commit 78ba82f7 authored by Eliad Peller's avatar Eliad Peller Committed by Emmanuel Grumbach

iwlwifi: mvm: take scan ref only on success

In some cases, scan reference was taken, but wasn't
released even though scan command wasn't actually issued.

Change the current code to simply take the reference
only on success.
Signed-off-by: default avatarEliad Peller <eliadx.peller@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent c8f42315
...@@ -1190,8 +1190,6 @@ int iwl_mvm_reg_scan_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif, ...@@ -1190,8 +1190,6 @@ int iwl_mvm_reg_scan_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
if (ret) if (ret)
return ret; return ret;
iwl_mvm_ref(mvm, IWL_MVM_REF_SCAN);
/* we should have failed registration if scan_cmd was NULL */ /* we should have failed registration if scan_cmd was NULL */
if (WARN_ON(!mvm->scan_cmd)) if (WARN_ON(!mvm->scan_cmd))
return -ENOMEM; return -ENOMEM;
...@@ -1232,21 +1230,20 @@ int iwl_mvm_reg_scan_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif, ...@@ -1232,21 +1230,20 @@ int iwl_mvm_reg_scan_start(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
return ret; return ret;
ret = iwl_mvm_send_cmd(mvm, &hcmd); ret = iwl_mvm_send_cmd(mvm, &hcmd);
if (!ret) { if (ret) {
IWL_DEBUG_SCAN(mvm, "Scan request was sent successfully\n");
mvm->scan_status |= IWL_MVM_SCAN_REGULAR;
} else {
/* If the scan failed, it usually means that the FW was unable /* If the scan failed, it usually means that the FW was unable
* to allocate the time events. Warn on it, but maybe we * to allocate the time events. Warn on it, but maybe we
* should try to send the command again with different params. * should try to send the command again with different params.
*/ */
IWL_ERR(mvm, "Scan failed! ret %d\n", ret); IWL_ERR(mvm, "Scan failed! ret %d\n", ret);
return ret;
} }
if (ret) IWL_DEBUG_SCAN(mvm, "Scan request was sent successfully\n");
iwl_mvm_unref(mvm, IWL_MVM_REF_SCAN); mvm->scan_status |= IWL_MVM_SCAN_REGULAR;
iwl_mvm_ref(mvm, IWL_MVM_REF_SCAN);
return ret; return 0;
} }
int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm, int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment