From ef494324a16116b4dcf58590ec4790cc37964b22 Mon Sep 17 00:00:00 2001 From: Liangwei Dong Date: Mon, 11 Sep 2023 13:58:29 +0800 Subject: [PATCH] qcacld-3.0: Skip force SCC check for inactive ML STA vdev If ML STA vdev is in inactive connection table, do not get the vdev's channel for force SCC check. Change-Id: I206aa33461f299847b247e97ea0453186c362795 CRs-Fixed: 3609017 --- .../cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h | 6 ++++++ core/sme/src/csr/csr_util.c | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h b/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h index af2c65b2ef..f4b3d9ad59 100644 --- a/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h +++ b/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h @@ -5153,6 +5153,12 @@ QDF_STATUS policy_mgr_update_active_mlo_num_links(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id, uint8_t num_links); #else +static inline bool +policy_mgr_vdev_is_force_inactive(struct wlan_objmgr_psoc *psoc, + uint8_t vdev_id) +{ + return false; +} static inline bool policy_mgr_is_mlo_sap_concurrency_allowed( struct wlan_objmgr_psoc *psoc, diff --git a/core/sme/src/csr/csr_util.c b/core/sme/src/csr/csr_util.c index 0efc724147..321548e057 100644 --- a/core/sme/src/csr/csr_util.c +++ b/core/sme/src/csr/csr_util.c @@ -636,6 +636,16 @@ uint16_t csr_check_concurrent_channel_overlap(struct mac_context *mac_ctx, if ((op_mode == QDF_STA_MODE || op_mode == QDF_P2P_CLIENT_MODE) && cm_is_vdevid_connected(mac_ctx->pdev, i)) { + if (op_mode == QDF_STA_MODE && + policy_mgr_is_ml_vdev_id(mac_ctx->psoc, + session->vdev_id) && + policy_mgr_vdev_is_force_inactive( + mac_ctx->psoc, + session->vdev_id)) { + sme_debug("skip inactive ml sta vdev %d", + session->vdev_id); + continue; + } wlan_get_op_chan_freq_info_vdev_id(mac_ctx->pdev, session->vdev_id, &intf_ch_freq, &intf_cfreq,