qcacld-3.0: Cleanup scan request when calling stop adapter

It doesn't record current scan request and won't cleanup being
process scan request. In some Rome platform, host driver just load one
time, scan request status mismatch to cfg80211 if didn't cleanup scan
request, and then cause crash.

Change-Id: I000db80bdf5175775f2415130ee3a2974aefa4ea
CRs-Fixed: 2111330
This commit is contained in:
Wu Gao 2017-08-30 16:08:21 +08:00 • committed by snandini
commit aceec6c1fc
2 changed files with 3 additions and 9 deletions

View file

@ -4306,11 +4306,9 @@ QDF_STATUS hdd_stop_adapter(struct hdd_context *hdd_ctx, struct hdd_adapter *ada
union iwreq_data wrqu;
tSirUpdateIE updateIE;
unsigned long rc;
struct hdd_scan_info *scan_info = NULL;
ENTER();
scan_info = &adapter->scan_info;
hdd_debug("Disabling queues");
wlan_hdd_netif_queue_control(adapter,
WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER,
@ -4370,8 +4368,7 @@ QDF_STATUS hdd_stop_adapter(struct hdd_context *hdd_ctx, struct hdd_adapter *ada
wireless_send_event(adapter->dev, SIOCGIWAP, &wrqu,
NULL);
}
if (scan_info != NULL && scan_info->mScanPending)
wlan_hdd_scan_abort(adapter);
wlan_hdd_scan_abort(adapter);
wlan_hdd_cleanup_remain_on_channel_ctx(adapter);
hdd_clear_fils_connection_info(adapter);

View file

@ -1433,13 +1433,10 @@ int wlan_hdd_vendor_abort_scan(
int wlan_hdd_scan_abort(struct hdd_adapter *adapter)
{
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
struct hdd_scan_info *pScanInfo = NULL;
pScanInfo = &adapter->scan_info;
wlan_abort_scan(hdd_ctx->hdd_pdev, INVAL_PDEV_ID,
adapter->sessionId, INVALID_SCAN_ID, true);
if (pScanInfo->mScanPending)
wlan_abort_scan(hdd_ctx->hdd_pdev, INVAL_PDEV_ID,
adapter->sessionId, INVALID_SCAN_ID, true);
return 0;
}