summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGupta, Kapil <kapgupta@qti.qualcomm.com>2016-05-03 11:29:28 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-05-11 13:40:24 +0530
commitdf533f75cb8f10503d9912b01013d9c584d052c0 (patch)
treed8343eae105631b55e7598fc5d869bc05acc48de
parentee1df9fb5cee6186c09077cd23d6c06510f96eb7 (diff)
qcacld-2.0: Ignore active timeout handler in case of ROC timeout
prima to qcacld-2.0 propagation DUT sends continuous GO Negotiation Response for the request while ROC is in progress. These frames increase timeout of cancel ROC timer and ROC is not removed from the active timout. This can cause ROC to be in active cmd list even after current timeout value. Add changes to return from active timeout handler in case of ROC. Change-Id: I58577b5d2addf7614d8ee458df0ce4632dafa7c0 CRs-Fixed: 990808
-rw-r--r--CORE/SME/src/sme_common/sme_Api.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index 30eb9d09794d..eea90b299b2c 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -14050,6 +14050,8 @@ void activeListCmdTimeoutHandle(void *userData)
{
tHalHandle hal = (tHalHandle) userData;
tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal);
+ tListElem *entry;
+ tSmeCmd *temp_cmd = NULL;
if (NULL == mac_ctx) {
VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_FATAL,
@@ -14076,6 +14078,14 @@ void activeListCmdTimeoutHandle(void *userData)
vosTraceDumpAll(mac_ctx, 0, 0, 500, 0);
}
+ entry = csrLLPeekHead(&mac_ctx->sme.smeCmdActiveList, LL_ACCESS_LOCK);
+ if (entry)
+ temp_cmd = GET_BASE_ADDR(entry, tSmeCmd, Link);
+
+ /* Ignore if ROC took more than 120 sec */
+ if (temp_cmd && (eSmeCommandRemainOnChannel == temp_cmd->command))
+ return;
+
if (mac_ctx->sme.enableSelfRecovery) {
sme_SaveActiveCmdStats(hal);
vos_trigger_recovery();