MAC: synchronize PE and HDD initiated disconnects
PE generated disassoc request is not serialized in SME queue. This
results in corrupting 'lim.limDisassocDeauthCnfReq.pMlmDisassocReq'
which is a global context to save disassoc request.
Address the above by indicating all the PE generated disassoc requests
to SME and process disconnection request only after receiving
eWNI_SME_DISASSOC_CNF from SME(similar to that of processing disassoc
request from peer).
Change-Id: I2b93925ba64c4d9ff22b071dd2e5c7681be59e15
CRs-Fixed: 934183
diff --git a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
index 7f3cc19..8035a5f 100644
--- a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
@@ -3012,28 +3012,17 @@
if (sendDisassocFrame && (pMlmDisassocReq->reasonCode != eSIR_MAC_DISASSOC_DUE_TO_FTHANDOFF_REASON))
{
pMac->lim.limDisassocDeauthCnfReq.pMlmDisassocReq = pMlmDisassocReq;
-
-
- /* If the reason for disassociation is inactivity of STA, then
- dont wait for acknowledgement. Also, if FW_IN_TX_PATH feature
- is enabled do not wait for ACK */
- if (((pMlmDisassocReq->reasonCode == eSIR_MAC_DISASSOC_DUE_TO_INACTIVITY_REASON) &&
- (psessionEntry->limSystemRole == eLIM_AP_ROLE)) ||
- IS_FW_IN_TX_PATH_FEATURE_ENABLE )
+ if (IS_FW_IN_TX_PATH_FEATURE_ENABLE)
{
-
- limSendDisassocMgmtFrame(pMac,
- pMlmDisassocReq->reasonCode,
+ limSendDisassocMgmtFrame(pMac, pMlmDisassocReq->reasonCode,
pMlmDisassocReq->peerMacAddr,
psessionEntry, FALSE);
-
- /* Send Disassoc CNF and receive path cleanup */
- limSendDisassocCnf(pMac);
+ /* Send Disassoc CNF and receive path cleanup */
+ limSendDisassocCnf(pMac);
}
else
{
- limSendDisassocMgmtFrame(pMac,
- pMlmDisassocReq->reasonCode,
+ limSendDisassocMgmtFrame(pMac, pMlmDisassocReq->reasonCode,
pMlmDisassocReq->peerMacAddr,
psessionEntry, TRUE);
}