From d32281cbb54b304d9414d7e0559bba71838256f4 Mon Sep 17 00:00:00 2001 From: Frank Liu Date: Fri, 30 Sep 2016 11:25:14 +0800 Subject: [PATCH] qcacld-3.0: Fix sme active list timeout by tdls propagation from qcacld-2.0 to qcacld-3.0. If tdls commands fail before it's really executed, the commands in active list will not be removed and timeout. Change-Id: Ie10458dcdef9571520b995d1879b499fe855ce2a CRs-Fixed: 962237 --- core/sme/src/common/sme_api.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 877fa62cf63e..2b9b453c84b5 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -1017,6 +1017,15 @@ sme_process_cmd: pCommand->command); csr_ll_unlock(&pMac->sme.smeCmdActiveList); status = csr_tdls_process_cmd(pMac, pCommand); + if (!QDF_IS_STATUS_SUCCESS(status)) { + if (csr_ll_remove_entry(&pMac->sme.smeCmdActiveList, + &pCommand->Link, + LL_ACCESS_LOCK)) { + qdf_mem_zero(&pCommand->u.tdlsCmd, + sizeof(tTdlsCmd)); + csr_release_command(pMac, pCommand); + } + } break; #endif case e_sme_command_set_hw_mode: