From 18b0eaab4f1f63320f36e30e7749bbd5e5508778 Mon Sep 17 00:00:00 2001 From: Tushnim Bhattacharyya Date: Mon, 27 Nov 2017 18:33:50 -0800 Subject: [PATCH] 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 --- core/hdd/src/wlan_hdd_main.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index ade06d2cef33..4a541953d5a8 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/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);