diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c index 3fe1a9916b16..7818c2dbcbf4 100644 --- a/core/hdd/src/wlan_hdd_power.c +++ b/core/hdd/src/wlan_hdd_power.c @@ -1806,23 +1806,15 @@ static int __wlan_hdd_cfg80211_suspend_wlan(struct wiphy *wiphy, ucfg_p2p_cleanup_tx_by_psoc(hdd_ctx->psoc); ucfg_p2p_cleanup_roc_by_psoc(hdd_ctx->psoc); - /* Stop ongoing scan on each interface */ - hdd_for_each_adapter(hdd_ctx, adapter) { - if (sme_neighbor_middle_of_roaming(mac_handle, - adapter->vdev_id) || - hdd_is_roaming_in_progress(hdd_ctx)) { - hdd_err("Roaming in progress, do not allow suspend"); - wlan_hdd_inc_suspend_stats(hdd_ctx, - SUSPEND_FAIL_ROAM); - return -EAGAIN; - } - - wlan_abort_scan(hdd_ctx->pdev, INVAL_PDEV_ID, - adapter->vdev_id, INVALID_SCAN_ID, false); + if (hdd_is_connection_in_progress(NULL, NULL)) { + hdd_err_rl("Connection is in progress, rejecting suspend"); + return -EINVAL; } - /* flush any pending powersave timers */ + /* abort ongoing scan and flush any pending powersave timers */ hdd_for_each_adapter(hdd_ctx, adapter) { + wlan_abort_scan(hdd_ctx->pdev, INVAL_PDEV_ID, + adapter->vdev_id, INVALID_SCAN_ID, false); if (wlan_hdd_validate_vdev_id(adapter->vdev_id)) continue;