void ath6kl_cfg80211_scan_complete_event(struct ath6kl *ar, int status)
 {
+       int i;
 
        ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: status %d\n", __func__, status);
 
-       if (ar->scan_req) {
-               /* Translate data to cfg80211 mgmt format */
-               ath6kl_wmi_iterate_nodes(ar->wmi, ath6kl_cfg80211_scan_node,
-                                        ar->wdev->wiphy);
-
-               cfg80211_scan_done(ar->scan_req, ((status & -ECANCELED)
-                                                 || (status & -EBUSY)) ? true :
-                                  false);
-
-               if (ar->scan_req->n_ssids && ar->scan_req->ssids[0].ssid_len) {
-                       u8 i;
-
-                       for (i = 0; i < ar->scan_req->n_ssids; i++) {
-                               ath6kl_wmi_probedssid_cmd(ar->wmi, i + 1,
-                                                         DISABLE_SSID_FLAG,
-                                                         0, NULL);
-                       }
+       if (!ar->scan_req)
+               return;
+
+       if ((status == -ECANCELED) || (status == -EBUSY)) {
+               cfg80211_scan_done(ar->scan_req, true);
+               goto out;
+       }
+
+       /* Translate data to cfg80211 mgmt format */
+       ath6kl_wmi_iterate_nodes(ar->wmi, ath6kl_cfg80211_scan_node,
+                                ar->wdev->wiphy);
+
+       cfg80211_scan_done(ar->scan_req, false);
+
+       if (ar->scan_req->n_ssids && ar->scan_req->ssids[0].ssid_len) {
+               for (i = 0; i < ar->scan_req->n_ssids; i++) {
+                       ath6kl_wmi_probedssid_cmd(ar->wmi, i + 1,
+                                                 DISABLE_SSID_FLAG,
+                                                 0, NULL);
                }
-               ar->scan_req = NULL;
        }
+
+out:
+       ar->scan_req = NULL;
 }
 
 static int ath6kl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev,