From ff27b914b58636e4bade03014ab013092e4bd3fe Mon Sep 17 00:00:00 2001 From: "Selvaraj, Sridhar" Date: Fri, 2 Sep 2016 11:08:59 +0530 Subject: qcacld-2.0: Send proper reason code to Supplicant on beacon miss event prima to qcacld-2.0 propagation Once the beacon miss event is received in driver, sta cleanup happens and sends deauth reason code as 505 which is internal value to driver(eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE). Send reason code as zero to Supplicant for Beacon miss kickout. Cleanup the similar handling in csrApiRoam as it is redundant. Change-Id: I6df97e05ac20f285646df3d5fe73800138a18d89 CRs-Fixed: 1025871 --- CORE/MAC/src/pe/lim/limSendSmeRspMessages.c | 23 +++++++++++++++++++++-- CORE/SME/src/csr/csrApiRoam.c | 12 +----------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c index d4188aa945a7..f1638080e659 100644 --- a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c +++ b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c @@ -1600,7 +1600,17 @@ limSendSmeDisassocNtf(tpAniSirGlobal pMac, vos_mem_copy(pSirSmeDisConDoneInd->peerMacAddr, peerMacAddr, sizeof(tSirMacAddr)); pSirSmeDisConDoneInd->sessionId = smesessionId; - pSirSmeDisConDoneInd->reasonCode = reasonCode; + + /* + * Instead of sending deauth reason code as 505 which is internal + * value to driver(eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE). + * Send reason code as zero to Supplicant + */ + if (reasonCode == eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE) + pSirSmeDisConDoneInd->reasonCode = 0; + else + pSirSmeDisConDoneInd->reasonCode = reasonCode; + pMsg = (tANI_U32 *)pSirSmeDisConDoneInd; break; @@ -2062,7 +2072,16 @@ limSendSmeDeauthNtf(tpAniSirGlobal pMac, tSirMacAddr peerMacAddr, tSirResultCode pSirSmeDisConDoneInd->messageType = eWNI_SME_DISCONNECT_DONE_IND; pSirSmeDisConDoneInd->length = sizeof(tSirSmeDisConDoneInd); pSirSmeDisConDoneInd->sessionId = smesessionId; - pSirSmeDisConDoneInd->reasonCode = reasonCode; + + /* + * Instead of sending deauth reason code as 505 which is internal + * value to driver(eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE). + * Send reason code as zero to Supplicant + */ + if (reasonCode == eSIR_SME_LOST_LINK_WITH_PEER_RESULT_CODE) + pSirSmeDisConDoneInd->reasonCode = 0; + else + pSirSmeDisConDoneInd->reasonCode = reasonCode; pMsg = (tANI_U32 *)pSirSmeDisConDoneInd; vos_mem_copy(pSirSmeDisConDoneInd->peerMacAddr, peerMacAddr, sizeof(tSirMacAddr)); diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index efd43821dd2c..06f8a1b906d2 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -11659,17 +11659,7 @@ eHalStatus csrRoamLostLink( tpAniSirGlobal pMac, tANI_U32 sessionId, tANI_U32 ty result = eCSR_ROAM_RESULT_DEAUTH_IND; pDeauthIndMsg = (tSirSmeDeauthInd *)pSirMsg; pSession->roamingStatusCode = pDeauthIndMsg->statusCode; - /* Convert into proper reason code */ - if ((pDeauthIndMsg->reasonCode == eSIR_BEACON_MISSED) || - (pDeauthIndMsg->reasonCode == - eSIR_MAC_DISASSOC_DUE_TO_INACTIVITY_REASON)) - pSession->joinFailStatusCode.reasonCode = 0; - else - pSession->joinFailStatusCode.reasonCode = pDeauthIndMsg->reasonCode; - /* - * cfg layer expects 0 as reason code if the driver doesn't know the - * reason code eSIR_BEACON_MISSED is defined as locally - */ + pSession->joinFailStatusCode.reasonCode = pDeauthIndMsg->reasonCode; } else { -- cgit v1.2.3