diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 9ff3265ee0a9..23ff282cd5a2 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -66,6 +66,7 @@ #include "wlan_policy_mgr_i.h" #include "wlan_scan_utils_api.h" #include "wlan_p2p_cfg_api.h" +#include "cfg_nan_api.h" #include #include "wlan_pkt_capture_ucfg_api.h" @@ -19624,6 +19625,7 @@ csr_roam_offload_scan(struct mac_context *mac_ctx, uint8_t session_id, bool prev_roaming_state; enum csr_akm_type roam_profile_akm = eCSR_AUTH_TYPE_UNKNOWN; uint32_t fw_akm_bitmap; + bool p2p_disable_sta_roaming = 0, nan_disable_sta_roaming = 0; sme_debug("RSO Command %d, vdev %d, Reason %d", command, session_id, reason); @@ -19708,14 +19710,22 @@ csr_roam_offload_scan(struct mac_context *mac_ctx, uint8_t session_id, } } - if (cfg_p2p_is_roam_config_disabled(mac_ctx->psoc) && - (command == ROAM_SCAN_OFFLOAD_START || - command == ROAM_SCAN_OFFLOAD_UPDATE_CFG) && - (policy_mgr_mode_specific_connection_count(mac_ctx->psoc, + p2p_disable_sta_roaming = + (cfg_p2p_is_roam_config_disabled(mac_ctx->psoc) && + (policy_mgr_mode_specific_connection_count(mac_ctx->psoc, PM_P2P_CLIENT_MODE, NULL) || + policy_mgr_mode_specific_connection_count(mac_ctx->psoc, + PM_P2P_GO_MODE, NULL))); + nan_disable_sta_roaming = + (cfg_nan_is_roam_config_disabled(mac_ctx->psoc) && policy_mgr_mode_specific_connection_count(mac_ctx->psoc, - PM_P2P_GO_MODE, NULL))) { - sme_info("roaming not supported for active p2p connection"); + PM_NDI_MODE, NULL)); + + if ((command == ROAM_SCAN_OFFLOAD_START || + command == ROAM_SCAN_OFFLOAD_UPDATE_CFG) && + (p2p_disable_sta_roaming || nan_disable_sta_roaming)) { + sme_info("roaming not supported for active %s connection", + p2p_disable_sta_roaming ? "p2p" : "ndi"); return QDF_STATUS_E_FAILURE; } /*