diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c index 926999486f..424e8d741f 100644 --- a/core/mac/src/pe/lim/lim_api.c +++ b/core/mac/src/pe/lim/lim_api.c @@ -2568,6 +2568,7 @@ lim_fill_roamed_peer_twt_caps(struct mac_context *mac_ctx, uint32_t status; tDot11fReAssocResponse *reassoc_rsp; struct pe_session *pe_session; + struct qdf_mac_addr mac_addr; pe_session = pe_find_session_by_vdev_id(mac_ctx, vdev_id); if (!pe_session) { @@ -2597,11 +2598,17 @@ lim_fill_roamed_peer_twt_caps(struct mac_context *mac_ctx, status, len); } - if (lim_is_session_he_capable(pe_session)) + if (lim_is_session_he_capable(pe_session)) { + if (is_multi_link_roam(roam_synch)) + mlo_get_sta_link_mac_addr(vdev_id, roam_synch, + &mac_addr); + else + qdf_copy_macaddr(&mac_addr, &roam_synch->bssid); lim_set_twt_peer_capabilities(mac_ctx, - &roam_synch->bssid, + &mac_addr, &reassoc_rsp->he_cap, &reassoc_rsp->he_op); + } qdf_mem_free(reassoc_rsp); } #endif diff --git a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c index 2a657cf4e3..37dc1b76f3 100644 --- a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c +++ b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c @@ -1384,7 +1384,8 @@ lim_process_assoc_rsp_frame(struct mac_context *mac_ctx, uint8_t *rx_pkt_info, &assoc_rsp->obss_scanparams); if (lim_is_session_he_capable(session_entry)) { - lim_set_twt_peer_capabilities( + if (!wlan_cm_is_vdev_roaming(session_entry->vdev)) + lim_set_twt_peer_capabilities( mac_ctx, (struct qdf_mac_addr *)current_bssid, &assoc_rsp->he_cap,