Prechádzať zdrojové kódy

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
Agrawal Ashish 8 rokov pred
rodič
commit
4c104387cc
1 zmenil súbory, kde vykonal 2 pridanie a 10 odobranie
  1. 2 10
      core/sap/src/sap_fsm.c

+ 2 - 10
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