From 30769a34c397df0e9bdb8b49f787666e01fda137 Mon Sep 17 00:00:00 2001 From: Abhishek Singh Date: Fri, 24 Jan 2020 09:59:11 +0530 Subject: [PATCH] qcacld-3.0: Fix wait for disconnect during connect req Even when vdev is in disconnected state, during connect it tries to wait for disconnect which lead to 1 sec delay in connect. So call wait for disconnect only if vdev is not already disconnected. Change-Id: Ib7a9b4628b0e10f71bdebe4b74a70d648825d9d3 CRs-Fixed: 2609462 --- core/hdd/src/wlan_hdd_cfg80211.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 42a426f446..140d408117 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -19886,6 +19886,11 @@ static int wlan_hdd_wait_for_disconnect(mac_handle_t mac_handle, unsigned long rc; uint32_t wait_time = SME_DISCONNECT_TIMEOUT; + /* Return if already disconnected */ + if (sta_ctx->conn_info.conn_state == eConnectionState_NotConnected || + sta_ctx->conn_info.conn_state == eConnectionState_IbssDisconnected) + return 0; + /* If already in disconnecting state just wait for its completion */ if (sta_ctx->conn_info.conn_state == eConnectionState_Disconnecting) goto wait_for_disconnect; @@ -19936,7 +19941,7 @@ static void wlan_hdd_wait_for_roaming(mac_handle_t mac_handle, struct hdd_context *hdd_ctx; unsigned long rc; - if (adapter->device_mode != QDF_STA_MODE) + if (adapter->device_mode != QDF_STA_MODE) return; hdd_ctx = WLAN_HDD_GET_CTX(adapter);