summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAgrawal Ashish <ashishka@codeaurora.org>2016-08-18 16:24:11 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2016-09-21 17:02:18 -0700
commit4c104387cc3880fd42ccd248693dbb6833da60fe (patch)
treef03dc5717fd7c08b91a470e532891863215fddb1
parent7dd7c5991796c8dd494f2cff1e06ee48b9b54dd3 (diff)
qcacld-3.0: Fix SAP start failure issue
qcacld-2.0 to qcacld-3.0 propagation At the time of driver load, sap session is opened as part of hdd_init_ap_mode but in case of sap restart, sme_open_session is called from sapFsm. At the time of opening session, sme_open_session register wlansap_roam_callback callback for connection status. If this callback is not registered, HDD will not get connection status and HDD will start cleanup after SAP connection timeout which will result in SAP failure. Need to register wlansap_roam_callback as part of sme_open_session when session is not created as part of hdd_init_ap_mode. Change-Id: Ifd2cec5fec432f1dcd2b39c59df1f1c5b13c55d5 CRs-Fixed: 1051097
-rw-r--r--core/sap/src/sap_fsm.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c
index ff1caa64bfa8..32fca747bc2e 100644
--- a/core/sap/src/sap_fsm.c
+++ b/core/sap/src/sap_fsm.c
@@ -3378,8 +3378,8 @@ static QDF_STATUS sap_fsm_state_disconnected(ptSapContext sap_ctx,
"failed to get vdev type");
return QDF_STATUS_E_FAILURE;
}
- /* Open SME Session for scan */
- qdf_status = sme_open_session(hal, NULL,
+ qdf_status = sme_open_session(hal,
+ &wlansap_roam_callback,
sap_ctx, sap_ctx->self_mac_addr,
&sap_ctx->sessionId, type, subtype);
if (QDF_STATUS_SUCCESS != qdf_status) {
@@ -3404,14 +3404,6 @@ static QDF_STATUS sap_fsm_state_disconnected(ptSapContext sap_ctx,
*/
qdf_status = sap_goto_channel_sel(sap_ctx, sap_event, false,
true);
-
- /*
- * Transition from eSAP_DISCONNECTED to eSAP_CH_SELECT
- * (both without substates)
- */
- QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
- FL("from state %s => %s"),
- "eSAP_DISCONNECTED", "eSAP_CH_SELECT");
} else if (msg == eSAP_DFS_CHANNEL_CAC_START) {
/*
* No need of state check here, caller is expected to perform