Преглед изворни кода

qcacld-3.0: Do not set acs_in_progress if ACS scan is skipped

If ACS scan is skipped, then ACS request is completed and vendor
event is sent to userspace in same context, so there is no need to set
acs_in_progress when ACS scan is skipped.

Change-Id: Id3d1235e405832ce66a1b8837dc04e94bb3c6b64
CRs-Fixed: 3296939
Surabhi Vishnoi пре 2 година
родитељ
комит
019bdebd3f
3 измењених фајлова са 7 додато и 1 уклоњено
  1. 5 1
      core/hdd/src/wlan_hdd_cfg80211.c
  2. 1 0
      core/sap/inc/sap_api.h
  3. 1 0
      core/sap/src/sap_fsm.c

+ 5 - 1
core/hdd/src/wlan_hdd_cfg80211.c

@@ -2204,7 +2204,11 @@ int wlan_hdd_cfg80211_start_acs(struct hdd_adapter *adapter)
 	if (sap_is_auto_channel_select(WLAN_HDD_GET_SAP_CTX_PTR(adapter)))
 		sap_config->acs_cfg.acs_mode = true;
 
-	qdf_atomic_set(&adapter->session.ap.acs_in_progress, 1);
+	/* If ACS scan is skipped then ACS request would be completed by now,
+	 * so no need to set acs in progress
+	 */
+	if (!sap_config->acs_cfg.skip_acs_scan)
+		qdf_atomic_set(&adapter->session.ap.acs_in_progress, 1);
 
 	return 0;
 }

+ 1 - 0
core/sap/inc/sap_api.h

@@ -459,6 +459,7 @@ struct sap_acs_cfg {
 	bool       is_eht_enabled;
 	uint16_t   acs_puncture_bitmap;
 #endif
+	bool       skip_acs_scan;
 	uint32_t   last_scan_ageout_time;
 };
 

+ 1 - 0
core/sap/src/sap_fsm.c

@@ -1398,6 +1398,7 @@ QDF_STATUS sap_channel_sel(struct sap_context *sap_context)
 
 		if (!req->scan_req.chan_list.num_chan) {
 			sap_info("## SKIPPED ACS SCAN");
+			sap_context->acs_cfg->skip_acs_scan = true;
 			wlansap_pre_start_bss_acs_scan_callback(
 				mac_handle, sap_context, sap_context->sessionId,
 				0, eCSR_SCAN_SUCCESS);