Browse Source

qcacld-3.0: Allow BSS start during STA connection

SoftAP start fails during station connection is in progress and the flag
update_beacon is not set. Also allow beacon/probe resp update in the middle
of p2p connection.

Change-Id: I13d89b6b8b51f999ff317d1f55dc3fcf48bdd422
CRs-Fixed: 2108186
Mahesh Kumar Kalikot Veetil 7 years ago
parent
commit
c637fc91d7

+ 1 - 2
core/hdd/inc/wlan_hdd_main.h

@@ -2325,8 +2325,7 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
 		struct cfg80211_beacon_data *params,
 		const u8 *ssid, size_t ssid_len,
 		enum nl80211_hidden_ssid hidden_ssid,
-		bool check_for_concurrency,
-		bool update_beacon);
+		bool check_for_concurrency);
 
 #if !defined(REMOVE_PKT_LOG)
 int hdd_process_pktlog_command(struct hdd_context *hdd_ctx, uint32_t set_value,

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

@@ -9280,7 +9280,7 @@ int wlan_hdd_request_pre_cac(uint8_t channel)
 
 	status = wlan_hdd_cfg80211_start_bss(pre_cac_adapter, NULL,
 			PRE_CAC_SSID, qdf_str_len(PRE_CAC_SSID),
-			NL80211_HIDDEN_SSID_NOT_IN_USE, false, false);
+			NL80211_HIDDEN_SSID_NOT_IN_USE, false);
 	if (QDF_IS_STATUS_ERROR(status)) {
 		hdd_err("start bss failed");
 		goto stop_close_pre_cac_adapter;

+ 3 - 8
core/hdd/src/wlan_hdd_hostapd.c

@@ -7405,8 +7405,7 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
 				       struct cfg80211_beacon_data *params,
 				       const u8 *ssid, size_t ssid_len,
 				       enum nl80211_hidden_ssid hidden_ssid,
-				       bool check_for_concurrency,
-				       bool update_beacon)
+				       bool check_for_concurrency)
 {
 	tsap_Config_t *pConfig;
 	struct hdd_beacon_data *pBeacon = NULL;
@@ -7433,10 +7432,6 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
 
 	ENTER();
 
-	if (!update_beacon && hdd_is_connection_in_progress(NULL, NULL)) {
-		hdd_err("Can't start BSS: connection is in progress");
-		return -EINVAL;
-	}
 
 	hdd_notify_teardown_tdls_links(adapter->hdd_vdev);
 
@@ -8589,7 +8584,7 @@ static int __wlan_hdd_cfg80211_start_ap(struct wiphy *wiphy,
 			wlan_hdd_cfg80211_start_bss(adapter,
 				&params->beacon,
 				params->ssid, params->ssid_len,
-				params->hidden_ssid, true, false);
+				params->hidden_ssid, true);
 
 		if (status != 0) {
 			hdd_err("Error Start bss Failed");
@@ -8719,7 +8714,7 @@ static int __wlan_hdd_cfg80211_change_beacon(struct wiphy *wiphy,
 	adapter->sessionCtx.ap.beacon = new;
 	hdd_debug("update beacon for P2P GO/SAP");
 	status = wlan_hdd_cfg80211_start_bss(adapter, params, NULL,
-					0, 0, false, true);
+					0, 0, false);
 
 	EXIT();
 	return status;