wcn36xx: Fix warning due to duplicate scan_completed notification
The wcn36xx_cancel_hw_scan method stops the hw scan and notify the scan completion via ieee80211_scan_completed. However, on scan offload cancellation, firmware sends a scan complete indication, triggering a new call to ieee80211_scan_completed. This leads to kernel warn since the scan has already been completed. Signed-off-by: Loic Poulain <loic.poulain@linaro.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
52c528ffaf
commit
9bfd05e35a
|
@ -666,16 +666,13 @@ static void wcn36xx_cancel_hw_scan(struct ieee80211_hw *hw,
|
|||
{
|
||||
struct wcn36xx *wcn = hw->priv;
|
||||
|
||||
if (!wcn36xx_smd_stop_hw_scan(wcn)) {
|
||||
struct cfg80211_scan_info scan_info = { .aborted = true };
|
||||
|
||||
ieee80211_scan_completed(wcn->hw, &scan_info);
|
||||
}
|
||||
|
||||
mutex_lock(&wcn->scan_lock);
|
||||
wcn->scan_aborted = true;
|
||||
mutex_unlock(&wcn->scan_lock);
|
||||
|
||||
/* ieee80211_scan_completed will be called on FW scan indication */
|
||||
wcn36xx_smd_stop_hw_scan(wcn);
|
||||
|
||||
cancel_work_sync(&wcn->scan_work);
|
||||
}
|
||||
|
||||
|
|
|
@ -2138,6 +2138,8 @@ static int wcn36xx_smd_hw_scan_ind(struct wcn36xx *wcn, void *buf, size_t len)
|
|||
case WCN36XX_HAL_SCAN_IND_COMPLETED:
|
||||
mutex_lock(&wcn->scan_lock);
|
||||
wcn->scan_req = NULL;
|
||||
if (wcn->scan_aborted)
|
||||
scan_info.aborted = true;
|
||||
mutex_unlock(&wcn->scan_lock);
|
||||
ieee80211_scan_completed(wcn->hw, &scan_info);
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue