Browse Source

qcacld-3.0: Fix sap reinit after SSR

The reinit logic for SAP shouldn't initialize all the data
structures related to ACS to 0 after SSR.

Change-Id: Id637968b3e0edc0f3698836802012f5921c5c79e
CRs-Fixed: 2150314
Tushnim Bhattacharyya 7 năm trước cách đây
mục cha
commit
18b0eaab4f
1 tập tin đã thay đổi với 9 bổ sung6 xóa
  1. 9 6
      core/hdd/src/wlan_hdd_main.c

+ 9 - 6
core/hdd/src/wlan_hdd_main.c

@@ -8141,6 +8141,7 @@ int hdd_start_station_adapter(struct hdd_adapter *adapter)
 int hdd_start_ap_adapter(struct hdd_adapter *adapter)
 {
 	QDF_STATUS status;
+	bool is_ssr = false;
 	int ret;
 
 	ENTER();
@@ -8151,12 +8152,14 @@ int hdd_start_ap_adapter(struct hdd_adapter *adapter)
 		return qdf_status_to_os_return(QDF_STATUS_SUCCESS);
 	}
 	/*
-	 * create sap context first and then create vdev as
-	 * while creating the vdev, driver needs to register
-	 * SAP callback and that callback uses sap context
+	 * In SSR case no need to create new sap context.
+	 * Otherwise create sap context first and then create
+	 * vdev as while creating the vdev, driver needs to
+	 * register SAP callback and that callback uses sap context
 	 */
-	if (!adapter->session.ap.sap_context &&
-	    !hdd_sap_create_ctx(adapter)) {
+	if (adapter->session.ap.sap_context) {
+		is_ssr = true;
+	} else if (!hdd_sap_create_ctx(adapter)) {
 		hdd_err("sap creation failed");
 		return qdf_status_to_os_return(QDF_STATUS_E_FAILURE);
 	}
@@ -8168,7 +8171,7 @@ int hdd_start_ap_adapter(struct hdd_adapter *adapter)
 		hdd_sap_destroy_ctx(adapter);
 		return ret;
 	}
-	status = hdd_init_ap_mode(adapter, false);
+	status = hdd_init_ap_mode(adapter, is_ssr);
 
 	if (QDF_STATUS_SUCCESS != status) {
 		hdd_err("Error Initializing the AP mode: %d", status);