summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHong Shi <hongsh@codeaurora.org>2018-08-28 15:13:32 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2018-08-28 01:39:54 -0700
commit88dd18dba0cd4e08c206e0d7469c3eb14e68ee5e (patch)
tree43551237ad2b17d8a01fdd16ca886ce93b7f8cf1
parent95c63cc58f8c7ad93059e3036da3fcce1fc9f43b (diff)
qcacld-2.0: Fix race condition between kickout and disconnect
There's race condition between kickout event and disconnect command. It cause disconnect_comp_var is not completed properly. Add check in limTearDownLinkWithAp to eliminate the race condition. Change-Id: Iebe98911cc41e8b33f8f403b75c79a75a38ca0a6 CRs-Fixed: 2304261
-rw-r--r--CORE/MAC/src/pe/lim/limLinkMonitoringAlgo.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/CORE/MAC/src/pe/lim/limLinkMonitoringAlgo.c b/CORE/MAC/src/pe/lim/limLinkMonitoringAlgo.c
index 901f4aa2dd5b..556252574d17 100644
--- a/CORE/MAC/src/pe/lim/limLinkMonitoringAlgo.c
+++ b/CORE/MAC/src/pe/lim/limLinkMonitoringAlgo.c
@@ -374,6 +374,12 @@ limTearDownLinkWithAp(tpAniSirGlobal pMac, tANI_U8 sessionId, tSirMacReasonCodes
{
tLimMlmDeauthInd mlmDeauthInd;
+ if (pStaDs->mlmStaContext.disassocReason == eSIR_MAC_DEAUTH_LEAVING_BSS_REASON ||
+ pStaDs->mlmStaContext.cleanupTrigger == eLIM_HOST_DEAUTH) {
+ limLog(pMac, LOGE,
+ FL("Host already issued deauth, do nothing.\n"));
+ return;
+ }
#ifdef FEATURE_WLAN_TDLS
/* Delete all TDLS peers connected before leaving BSS*/
limDeleteTDLSPeers(pMac, psessionEntry);