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>
 {
        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);
 }
 
 
        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;