From 4c104387cc3880fd42ccd248693dbb6833da60fe Mon Sep 17 00:00:00 2001 From: Agrawal Ashish Date: Thu, 18 Aug 2016 16:24:11 +0530 Subject: 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 --- core/sap/src/sap_fsm.c | 12 ++---------- 1 file 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 -- cgit v1.2.3