diff options
| author | Ryan Hsu <ryanhsu@qca.qualcomm.com> | 2014-06-18 06:34:41 -0700 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-06-21 02:10:04 -0700 |
| commit | 78829cc63e7c2639e11fe59fab9f1d910da26465 (patch) | |
| tree | c3d5ad1cf45706523c5f4093941485ac3f12f3ce | |
| parent | aaaec0265b3d583e4c4c372766454a6f2539d178 (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.c | 33 |
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 { |
