diff --git a/components/umac/mlme/connection_mgr/dispatcher/src/wlan_cm_roam_ucfg_api.c b/components/umac/mlme/connection_mgr/dispatcher/src/wlan_cm_roam_ucfg_api.c index c54ef88f11..a3956e5e8a 100644 --- a/components/umac/mlme/connection_mgr/dispatcher/src/wlan_cm_roam_ucfg_api.c +++ b/components/umac/mlme/connection_mgr/dispatcher/src/wlan_cm_roam_ucfg_api.c @@ -1,6 +1,6 @@ /* * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -25,6 +25,7 @@ #include "wlan_cm_roam_ucfg_api.h" #include "../../core/src/wlan_cm_roam_offload.h" #include "wlan_reg_ucfg_api.h" +#include "wlan_mlo_mgr_sta.h" bool ucfg_is_rso_enabled(struct wlan_objmgr_pdev *pdev, uint8_t vdev_id) { @@ -89,6 +90,16 @@ ucfg_user_space_enable_disable_rso(struct wlan_objmgr_pdev *pdev, mlme_set_supplicant_disabled_roaming(psoc, vdev_id, !is_fast_roam_enabled); + /* For mlo connection, before all links are up + * supplicant can enable roaming, to handle this + * drop the enable rso as host will enable roaming + * once all links are up + */ + if (mlo_is_ml_connection_in_progress(psoc, vdev_id)) { + mlme_debug("mlo connection in progress"); + return QDF_STATUS_SUCCESS; + } + state = (is_fast_roam_enabled) ? WLAN_ROAM_RSO_ENABLED : WLAN_ROAM_RSO_STOPPED; status = cm_roam_state_change(pdev, vdev_id, state,