diff options
| author | Deepthi Gowri <c_gowri@qti.qualcomm.com> | 2015-07-15 19:23:02 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-07-21 19:07:03 +0530 |
| commit | ff7dbace5bdc5b2a87db295ca2ffe560e0537ede (patch) | |
| tree | af6e7959bfa6cef29daa8b52bd238e9c752df1b6 | |
| parent | 4d7f0080d95a7423dd5aab7d4b1ab2b70bd0ec43 (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.c | 3 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 5 |
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) { |
