From 459da8ac4124b944e8c8a0d64f4e153cf7b9ac6a Mon Sep 17 00:00:00 2001 From: Surabhi Vishnoi Date: Wed, 13 Jan 2021 16:04:36 +0530 Subject: [PATCH] qcacld-3.0: Issue disconnect only in case of mon concurrency While adding monitor interface, issue disconnect for existing STA interface only if mon concurrency is supported, for packet capture mode disconnection is not required. Change-Id: I6e970eb52681fcb500ab56372ff93e9c73d79618 CRs-Fixed: 2855842 --- core/hdd/src/wlan_hdd_main.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 90b12009a1bd..312de270d0e4 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -18664,19 +18664,21 @@ wlan_hdd_add_monitor_check(struct hdd_context *hdd_ctx, return -EINVAL; } - num_open_session = policy_mgr_mode_specific_connection_count( - hdd_ctx->psoc, - PM_STA_MODE, - NULL); + if (ucfg_mlme_is_sta_mon_conc_supported(hdd_ctx->psoc)) { + num_open_session = policy_mgr_mode_specific_connection_count( + hdd_ctx->psoc, + PM_STA_MODE, + NULL); - if (num_open_session == 1) { - hdd_ctx->disconnect_for_sta_mon_conc = true; - /* Try disconnecting if already in connected state */ - errno = wlan_hdd_try_disconnect(sta_adapter, - REASON_UNSPEC_FAILURE); - if (errno > 0) { - hdd_err("Failed to disconnect the existing connection"); - return -EALREADY; + if (num_open_session == 1) { + hdd_ctx->disconnect_for_sta_mon_conc = true; + /* Try disconnecting if already in connected state */ + errno = wlan_hdd_try_disconnect(sta_adapter, + REASON_UNSPEC_FAILURE); + if (errno > 0) { + hdd_err("Failed to disconnect the existing connection"); + return -EALREADY; + } } }