diff --git a/components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c b/components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c index db3aa1948f..acaaf51cbb 100644 --- a/components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c +++ b/components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c @@ -4401,6 +4401,7 @@ QDF_STATUS cm_start_roam_invoke(struct wlan_objmgr_psoc *psoc, struct cm_req *cm_req; QDF_STATUS status; uint8_t roam_control_bitmap; + struct qdf_mac_addr connected_bssid; uint8_t vdev_id = vdev->vdev_objmgr.vdev_id; bool roam_offload_enabled = cm_roam_offload_enabled(psoc); @@ -4432,6 +4433,12 @@ QDF_STATUS cm_start_roam_invoke(struct wlan_objmgr_psoc *psoc, goto send_evt; } + wlan_vdev_get_bss_peer_mac(vdev, &connected_bssid); + if (qdf_is_macaddr_equal(bssid, &connected_bssid)) { + mlme_debug("Reassoc BSSID is same as currently associated AP"); + chan_freq = wlan_get_operation_chan_freq(vdev); + } + if (!chan_freq || qdf_is_macaddr_zero(bssid)) { mlme_debug("bssid " QDF_MAC_ADDR_FMT " chan_freq %d", QDF_MAC_ADDR_REF(bssid->bytes), chan_freq);