diff --git a/components/cmn_services/interface_mgr/src/wlan_if_mgr_roam.c b/components/cmn_services/interface_mgr/src/wlan_if_mgr_roam.c index 3f56216154..9f91dd2172 100644 --- a/components/cmn_services/interface_mgr/src/wlan_if_mgr_roam.c +++ b/components/cmn_services/interface_mgr/src/wlan_if_mgr_roam.c @@ -86,19 +86,19 @@ static void if_mgr_disable_roaming_on_vdev(struct wlan_objmgr_pdev *pdev, vdev_id = wlan_vdev_get_id(vdev); curr_vdev_id = roam_arg->curr_vdev_id; - if (curr_vdev_id != vdev_id && - wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE && - !wlan_cm_is_vdev_roam_sync_inprogress(vdev) && - vdev->vdev_mlme.mlme_state == WLAN_VDEV_S_UP) { - /* IFMGR Verification: Temporary call to sme_stop_roaming api, - * will be replaced by converged roaming api - * once roaming testing is complete. - */ - ifmgr_debug("Roaming disabled on vdev_id %d", vdev_id); - wlan_cm_disable_rso(pdev, vdev_id, - roam_arg->requestor, - REASON_DRIVER_DISABLED); - } + if (curr_vdev_id == vdev_id || + wlan_vdev_mlme_get_opmode(vdev) != QDF_STA_MODE || + wlan_cm_is_vdev_roam_sync_inprogress(vdev) || + vdev->vdev_mlme.mlme_state != WLAN_VDEV_S_UP) + return; + + /* + * Disable roaming only for the STA vdev which is not is roam sync state + * and VDEV is in UP state. + */ + ifmgr_debug("Roaming disabled on vdev_id %d", vdev_id); + wlan_cm_disable_rso(pdev, vdev_id, roam_arg->requestor, + REASON_DRIVER_DISABLED); } QDF_STATUS if_mgr_disable_roaming(struct wlan_objmgr_pdev *pdev,