diff options
| author | Gupta, Kapil <kapgupta@qti.qualcomm.com> | 2016-05-03 11:29:28 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-05-11 13:40:24 +0530 |
| commit | df533f75cb8f10503d9912b01013d9c584d052c0 (patch) | |
| tree | d8343eae105631b55e7598fc5d869bc05acc48de | |
| parent | ee1df9fb5cee6186c09077cd23d6c06510f96eb7 (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.c | 10 |
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(); |
