summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Hsu <ryanhsu@qca.qualcomm.com>2014-06-18 06:34:41 -0700
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-06-21 02:10:04 -0700
commit78829cc63e7c2639e11fe59fab9f1d910da26465 (patch)
treec3d5ad1cf45706523c5f4093941485ac3f12f3ce
parentaaaec0265b3d583e4c4c372766454a6f2539d178 (diff)
qcacld: sap: fix assert while stop bss in CAC_WAIT state
In the CAC_WAIT state, when stop bss, we should transit to disconnecting state to clean up the resource that it allocated when creating the bss, instead of moving to disconnected state, which will leave the timer and some callback resource behind, that causes the unexpected post message coming and hence assert happens. Change-Id: I04bb2ee476864a7fcab977a1b651551ce4968d6c CRs-fixed: 681993
-rw-r--r--CORE/SAP/src/sapFsm.c33
1 files changed, 6 insertions, 27 deletions
diff --git a/CORE/SAP/src/sapFsm.c b/CORE/SAP/src/sapFsm.c
index 553ba85aa59f..e2e82a7c989f 100644
--- a/CORE/SAP/src/sapFsm.c
+++ b/CORE/SAP/src/sapFsm.c
@@ -1339,39 +1339,18 @@ sapFsm
}
else if (msg == eSAP_HDD_STOP_INFRA_BSS)
{
- /* Transition from eSAP_STARTING to eSAP_DISCONNECTED */
+ /* Transition from eSAP_DFS_CAC_WAIT to eSAP_DISCONNECTING */
VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH,
"In %s, from state %s => %s",
- __func__, "eSAP_DFS_CAC_WAIT", "eSAP_DISCONNECTIED");
+ __func__,
+ "eSAP_DFS_CAC_WAIT",
+ "eSAP_DISCONNECTING");
/* stop CAC timer */
sapStopDfsCacTimer(sapContext);
- /*Advance outer statevar */
- sapContext->sapsMachine = eSAP_DISCONNECTED;
- vosStatus = sapSignalHDDevent( sapContext,
- NULL,
- eSAP_START_BSS_EVENT,
- (v_PVOID_t)eSAP_STATUS_FAILURE);
- vosStatus = sapGotoDisconnected(sapContext);
- /* Close the SME session*/
-
- if (eSAP_TRUE == sapContext->isSapSessionOpen)
- {
- tHalHandle hHal = VOS_GET_HAL_CB(sapContext->pvosGCtx);
- if (NULL == hHal)
- {
- VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR,
- "In %s, NULL hHal in state %s, msg %d",
- __func__, "eSAP_DFS_CAC_WAIT", msg);
- }
- else if (eHAL_STATUS_SUCCESS ==
- sme_CloseSession(hHal,
- sapContext->sessionId, NULL, NULL))
- {
- sapContext->isSapSessionOpen = eSAP_FALSE;
- }
- }
+ sapContext->sapsMachine = eSAP_DISCONNECTING;
+ vosStatus = sapGotoDisconnecting(sapContext);
}
else
{