summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivas Girigowda <sgirigow@qca.qualcomm.com>2014-01-15 20:50:58 -0800
committerPrakash Dhavali <pdhavali@qca.qualcomm.com>2014-01-26 00:53:52 -0800
commite47f31f9ea266a251b3279ccc381fc1db01bc068 (patch)
tree867a850cf353267afa95a2954d8e7ff32219c387
parent87f9430f62ff783a1bf946bbc7d7c3fbba81370a (diff)
wlan: qcacld: Fix for wifi cannot connect network after wake up.
when used shared key auth with the AP which is not configured properly DUT is stuck in bad state. This commit helps recover the issue. Change-Id: I33bc7bcf0902fb8e4445ea73111ec20010e5eb9f CRs-Fixed: 600252
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 789f8451bcb7..b5d103c25cd9 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -10339,6 +10339,7 @@ void csrRoamWaitForKeyTimeOutHandler(void *pv)
tCsrTimerInfo *pInfo = (tCsrTimerInfo *)pv;
tpAniSirGlobal pMac = pInfo->pMac;
tCsrRoamSession *pSession = CSR_GET_SESSION( pMac, pInfo->sessionId );
+ eHalStatus status = eHAL_STATUS_FAILURE;
smsLog(pMac, LOGW, "WaitForKey timer expired in state=%d sub-state=%d",
pMac->roam.neighborRoamInfo.neighborRoamState,
@@ -10376,6 +10377,21 @@ void csrRoamWaitForKeyTimeOutHandler(void *pv)
{
csrRoamLinkUp(pMac, pSession->connectedProfile.bssid);
smeProcessPendingQueue(pMac);
+ if ((pSession->connectedProfile.AuthType ==
+ eCSR_AUTH_TYPE_SHARED_KEY) &&
+ ((pSession->connectedProfile.EncryptionType ==
+ eCSR_ENCRYPT_TYPE_WEP40) ||
+ (pSession->connectedProfile.EncryptionType ==
+ eCSR_ENCRYPT_TYPE_WEP104)))
+ {
+ status = sme_AcquireGlobalLock(&pMac->sme);
+ if (HAL_STATUS_SUCCESS(status ))
+ {
+ csrRoamDisconnect(pMac, pInfo->sessionId,
+ eCSR_DISCONNECT_REASON_UNSPECIFIED);
+ sme_ReleaseGlobalLock(&pMac->sme);
+ }
+ }
}
else
{