|
@@ -316,12 +316,18 @@ 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");
|
|
|
- if (NL_SCAN == adapter->scan_source)
|
|
|
- hdd_cfg80211_scan_done(adapter, request, true);
|
|
|
- else
|
|
|
- hdd_vendor_scan_callback(adapter, request, true);
|
|
|
+ hdd_cfg80211_scan_done(adapter, request, true);
|
|
|
adapter->request = NULL;
|
|
|
}
|
|
|
+ request = adapter->vendor_request;
|
|
|
+ if (request) {
|
|
|
+ request->n_ssids = 0;
|
|
|
+ request->n_channels = 0;
|
|
|
+
|
|
|
+ hdd_err("In DFS Master mode. Scan aborted. Null result sent");
|
|
|
+ hdd_vendor_scan_callback(adapter, request, true);
|
|
|
+ adapter->vendor_request = NULL;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void wlan_hdd_cfg80211_scan_block_cb(struct work_struct *work)
|
|
@@ -481,8 +487,10 @@ static int __wlan_hdd_cfg80211_scan(struct wiphy *wiphy,
|
|
|
conn_info.connState) &&
|
|
|
(!hdd_ctx->config->enable_connected_scan)) {
|
|
|
hdd_info("enable_connected_scan is false, Aborting scan");
|
|
|
- adapter->request = request;
|
|
|
- adapter->scan_source = source;
|
|
|
+ if (NL_SCAN == source)
|
|
|
+ adapter->request = request;
|
|
|
+ else
|
|
|
+ adapter->vendor_request = request;
|
|
|
schedule_work(&adapter->scan_block_work);
|
|
|
return 0;
|
|
|
}
|
|
@@ -532,8 +540,10 @@ static int __wlan_hdd_cfg80211_scan(struct wiphy *wiphy,
|
|
|
* startup.
|
|
|
*/
|
|
|
hdd_err("##In DFS Master mode. Scan aborted");
|
|
|
- adapter->request = request;
|
|
|
- adapter->scan_source = source;
|
|
|
+ if (NL_SCAN == source)
|
|
|
+ adapter->request = request;
|
|
|
+ else
|
|
|
+ adapter->vendor_request = request;
|
|
|
|
|
|
schedule_work(&adapter->scan_block_work);
|
|
|
return 0;
|
|
@@ -589,8 +599,10 @@ static int __wlan_hdd_cfg80211_scan(struct wiphy *wiphy,
|
|
|
if (adapter->device_mode == QDF_SAP_MODE &&
|
|
|
wlan_hdd_sap_skip_scan_check(hdd_ctx, request)) {
|
|
|
hdd_debug("sap scan skipped");
|
|
|
- adapter->request = request;
|
|
|
- adapter->scan_source = source;
|
|
|
+ if (NL_SCAN == source)
|
|
|
+ adapter->request = request;
|
|
|
+ else
|
|
|
+ adapter->vendor_request = request;
|
|
|
schedule_work(&adapter->scan_block_work);
|
|
|
return 0;
|
|
|
}
|