From 191c85d0b4ea47b0107429f40725067f13f1bdd5 Mon Sep 17 00:00:00 2001 From: Nitesh Shah Date: Wed, 7 Dec 2016 20:06:08 +0530 Subject: qcacld-2.0: Disconnect AP on beacon change in csr scanning state If the CSR state of the STA changes eCSR_ROAMING_STATE_SCANNING. And the same time when the AP changes its capability, the STA gets the beacon and detects that the beacon is changed. In this case, the STA is unable to disassociate with the AP. The fix is to disconnect even when the change in beacon is detected, and CSR state is in eCSR_ROAMING_STATE_SCANNING. Change-Id: I884fc936f543ad56cdb74b50d568f52f4d80ad79 CRs-Fixed: 1098370 --- CORE/SME/src/csr/csrApiRoam.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index 954a30aab316..195b8cebb87f 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -10837,11 +10837,12 @@ void csrRoamCheckForLinkStatusChange( tpAniSirGlobal pMac, tSirSmeRsp *pSirMsg ) status = csrRoamGetSessionIdFromBSSID( pMac, (tCsrBssid *)pApNewCaps->bssId, &sessionId ); if( HAL_STATUS_SUCCESS( status ) ) { - if ((eCSR_ROAMING_STATE_JOINED == pMac->roam.curState[sessionId]) && + if (((eCSR_ROAMING_STATE_JOINED == pMac->roam.curState[sessionId]) && ((eCSR_ROAM_SUBSTATE_JOINED_REALTIME_TRAFFIC == pMac->roam.curSubState[sessionId]) || (eCSR_ROAM_SUBSTATE_NONE == pMac->roam.curSubState[sessionId]) || (eCSR_ROAM_SUBSTATE_JOINED_NON_REALTIME_TRAFFIC == pMac->roam.curSubState[sessionId]) || - (eCSR_ROAM_SUBSTATE_JOINED_NO_TRAFFIC == pMac->roam.curSubState[sessionId])) + (eCSR_ROAM_SUBSTATE_JOINED_NO_TRAFFIC == pMac->roam.curSubState[sessionId]))) || + (eCSR_ROAMING_STATE_SCANNING == pMac->roam.curState[sessionId]) ) { smsLog(pMac, LOGW, "Calling csrRoamDisconnectInternal"); -- cgit v1.2.3