diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h index 637523ec3dfc..308c44c812a8 100644 --- a/core/hdd/inc/wlan_hdd_main.h +++ b/core/hdd/inc/wlan_hdd_main.h @@ -932,6 +932,7 @@ struct hdd_adapter_s { /* TODO Move this to sta Ctx */ struct wireless_dev wdev; struct cfg80211_scan_request *request; + uint8_t scan_source; /** ops checks if Opportunistic Power Save is Enable or Not * ctw stores ctWindow value once we receive Opps command from diff --git a/core/hdd/src/wlan_hdd_scan.c b/core/hdd/src/wlan_hdd_scan.c index 67d749b5f389..d408fa9bb60a 100644 --- a/core/hdd/src/wlan_hdd_scan.c +++ b/core/hdd/src/wlan_hdd_scan.c @@ -1034,7 +1034,6 @@ void hdd_abort_mac_scan(hdd_context_t *pHddCtx, uint8_t sessionId, wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, sessionId, scan_id); #endif } -#ifndef NAPIER_SCAN /** * hdd_vendor_scan_callback() - Scan completed callback event * @hddctx: HDD context @@ -1120,7 +1119,6 @@ nla_put_failure: qdf_mem_free(req); return; } -#endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0)) /** * hdd_cfg80211_scan_done() - Scan completed callback to cfg80211 @@ -1392,7 +1390,10 @@ static void wlan_hdd_cfg80211_scan_block_cb(struct work_struct *work) request->n_channels = 0; hdd_err("##In DFS Master mode. Scan aborted. Null result sent"); - hdd_cfg80211_scan_done(adapter, request, true); + if (NL_SCAN == adapter->scan_source) + hdd_cfg80211_scan_done(adapter, request, true); + else + hdd_vendor_scan_callback(adapter, request, true); adapter->request = NULL; } } @@ -1578,6 +1579,7 @@ static int __wlan_hdd_cfg80211_scan(struct wiphy *wiphy, */ hdd_err("##In DFS Master mode. Scan aborted"); pAdapter->request = request; + pAdapter->scan_source = source; INIT_WORK(&pAdapter->scan_block_work, wlan_hdd_cfg80211_scan_block_cb); @@ -1653,6 +1655,7 @@ static int __wlan_hdd_cfg80211_scan(struct wiphy *wiphy, wlan_hdd_sap_skip_scan_check(pHddCtx, request)) { hdd_debug("sap scan skipped"); pAdapter->request = request; + pAdapter->scan_source = source; INIT_WORK(&pAdapter->scan_block_work, wlan_hdd_cfg80211_scan_block_cb); schedule_work(&pAdapter->scan_block_work);