|
@@ -13539,6 +13539,7 @@ static int __wlan_hdd_cfg80211_set_fast_roaming(struct wiphy *wiphy,
|
|
|
QDF_STATUS qdf_status;
|
|
|
unsigned long rc;
|
|
|
mac_handle_t mac_handle;
|
|
|
+ bool roaming_enabled;
|
|
|
|
|
|
hdd_enter_dev(dev);
|
|
|
|
|
@@ -13569,6 +13570,13 @@ static int __wlan_hdd_cfg80211_set_fast_roaming(struct wiphy *wiphy,
|
|
|
tb[QCA_WLAN_VENDOR_ATTR_ROAMING_POLICY]);
|
|
|
hdd_debug("ROAM_CONFIG: isFastRoamEnabled %d", is_fast_roam_enabled);
|
|
|
|
|
|
+ /*
|
|
|
+ * Get current roaming state and decide whether to wait for RSO_STOP
|
|
|
+ * response or not.
|
|
|
+ */
|
|
|
+ roaming_enabled = ucfg_is_roaming_enabled(hdd_ctx->pdev,
|
|
|
+ adapter->vdev_id);
|
|
|
+
|
|
|
/* Update roaming */
|
|
|
mac_handle = hdd_ctx->mac_handle;
|
|
|
qdf_status = ucfg_user_space_enable_disable_rso(hdd_ctx->pdev,
|
|
@@ -13581,6 +13589,7 @@ static int __wlan_hdd_cfg80211_set_fast_roaming(struct wiphy *wiphy,
|
|
|
ret = qdf_status_to_os_return(qdf_status);
|
|
|
|
|
|
if (hdd_cm_is_vdev_associated(adapter) &&
|
|
|
+ roaming_enabled &&
|
|
|
QDF_IS_STATUS_SUCCESS(qdf_status) && !is_fast_roam_enabled) {
|
|
|
INIT_COMPLETION(adapter->lfr_fw_status.disable_lfr_event);
|
|
|
/*
|