summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepthi Gowri <c_gowri@qti.qualcomm.com>2015-07-15 19:23:02 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-07-21 19:07:03 +0530
commitff7dbace5bdc5b2a87db295ca2ffe560e0537ede (patch)
treeaf6e7959bfa6cef29daa8b52bd238e9c752df1b6
parent4d7f0080d95a7423dd5aab7d4b1ab2b70bd0ec43 (diff)
qcacld2.0: Validate the disassoc reason code correctly.
When supplicant is sending del station with reason code 2, driver is comparing this reason code with the disassoc trigger reasoneLIM_LINK_MONITORING_DISASSOC instead of the actual disassoc reason code. Due to which the driver assumes this as an internally generated event and does not send the disassoc indication to supplicant and the supplicant keeps retrying with the del station and the connection always fails. To address this issue, validate disassoc reason in the disassoc req with actual disassoc reason codes intead of disassoc trigger reason code. CRs-Fixed: 874813 Change-Id: Icd6596bf9b7736ab810978915f1426f2fac409ec
-rw-r--r--CORE/MAC/src/pe/lim/limLinkMonitoringAlgo.c3
-rw-r--r--CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c5
2 files changed, 3 insertions, 5 deletions
diff --git a/CORE/MAC/src/pe/lim/limLinkMonitoringAlgo.c b/CORE/MAC/src/pe/lim/limLinkMonitoringAlgo.c
index 5ccec8dae06f..dcdcd63836ef 100644
--- a/CORE/MAC/src/pe/lim/limLinkMonitoringAlgo.c
+++ b/CORE/MAC/src/pe/lim/limLinkMonitoringAlgo.c
@@ -348,7 +348,8 @@ limTriggerSTAdeletion(tpAniSirGlobal pMac, tpDphHashNode pStaDs, tpPESession pse
msgLength += sizeof(tSirMacAddr);
//reasonCode
- limCopyU16((tANI_U8*)pBuf, (tANI_U16)eLIM_LINK_MONITORING_DISASSOC);
+ limCopyU16((tANI_U8*)pBuf,
+ (tANI_U16)eSIR_MAC_DISASSOC_DUE_TO_INACTIVITY_REASON);
pBuf += sizeof(tANI_U16);
msgLength += sizeof(tANI_U16);
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index 2cda88e0f832..61531908d6b0 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -2862,18 +2862,15 @@ __limProcessSmeDisassocReq(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
goto sendDisassoc;
} // end switch (pMac->lim.gLimSystemRole)
- if (smeDisassocReq.reasonCode == eLIM_LINK_MONITORING_DISASSOC)
+ if (smeDisassocReq.reasonCode == eSIR_MAC_DISASSOC_DUE_TO_INACTIVITY_REASON)
{
/// Disassociation is triggered by Link Monitoring
limLog(pMac, LOG1, FL("**** Lost link with AP ****"));
disassocTrigger = eLIM_LINK_MONITORING_DISASSOC;
- reasonCode = eSIR_MAC_DISASSOC_DUE_TO_INACTIVITY_REASON;
}
else
- {
disassocTrigger = eLIM_HOST_DISASSOC;
reasonCode = smeDisassocReq.reasonCode;
- }
if (smeDisassocReq.doNotSendOverTheAir)
{