wlan: Aborting scan while disconnect is in progress.
Before any scan is done, if there is any disconnect
due to some reason, supplicant always issue a new scan
which can cause failed to start AP scan.
CRs-Fixed: 489069
Change-Id: Id16ea6a4abd028402cec45cf9f4bbdea44cd629a
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index f9be803..cea4a11 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -5612,8 +5612,8 @@
&(WLAN_HDD_GET_WEXT_STATE_PTR(pAdapter))->roamProfile;
int status = 0;
hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
-#ifdef FEATURE_WLAN_TDLS
hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
+#ifdef FEATURE_WLAN_TDLS
tANI_U8 staIdx;
#endif
@@ -5638,6 +5638,7 @@
{
eCsrRoamDisconnectReason reasonCode =
eCSR_DISCONNECT_REASON_UNSPECIFIED;
+ hdd_scaninfo_t *pScanInfo;
switch(reason)
{
case WLAN_REASON_MIC_FAILURE:
@@ -5660,6 +5661,14 @@
reasonCode = eCSR_DISCONNECT_REASON_UNSPECIFIED;
break;
}
+ pHddStaCtx->conn_info.connState = eConnectionState_NotConnected;
+ pScanInfo = &pHddCtx->scan_info;
+ if (pScanInfo->mScanPending)
+ {
+ hddLog(VOS_TRACE_LEVEL_INFO, "Disconnect is in progress, "
+ "Aborting Scan");
+ hdd_abort_mac_scan(pHddCtx);
+ }
#ifdef FEATURE_WLAN_TDLS
/* First clean up the tdls peers if any */