Merge "wlan: Resolve memory leak issues"
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index f96cc64..9006254 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -11845,6 +11845,8 @@
{
tHalHandle hHal= (tHalHandle) userData;
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
+ tListElem *pEntry;
+ tSmeCmd *pTempCmd = NULL;
if (NULL == pMac)
{
@@ -11863,11 +11865,24 @@
csrLLCount(&pMac->sme.smeCmdActiveList) );
smeGetCommandQStatus(hHal);
+ pEntry = csrLLPeekHead(&pMac->sme.smeCmdActiveList, LL_ACCESS_LOCK);
+ if (pEntry) {
+ pTempCmd = GET_BASE_ADDR(pEntry, tSmeCmd, Link);
+ }
+ /* If user initiated scan took more than active list timeout
+ * abort it.
+ */
+ if (pTempCmd && (eSmeCommandScan == pTempCmd->command) &&
+ (eCsrScanUserRequest == pTempCmd->u.scanCmd.reason)) {
+ sme_AbortMacScan(hHal, pTempCmd->sessionId,
+ eCSR_SCAN_ABORT_DEFAULT);
+ return;
+ }
+
/* Initiate SSR to recover */
if (!(vos_isLoadUnloadInProgress() ||
vos_is_logp_in_progress(VOS_MODULE_ID_SME, NULL)))
{
- vosTraceDumpAll(pMac,0,0,0,0);
vos_wlanRestart();
}
}