diff --git a/core/hdd/src/wlan_hdd_cm_connect.c b/core/hdd/src/wlan_hdd_cm_connect.c index 32077bb9c8..5521e1a662 100644 --- a/core/hdd/src/wlan_hdd_cm_connect.c +++ b/core/hdd/src/wlan_hdd_cm_connect.c @@ -1795,15 +1795,14 @@ hdd_cm_connect_success_pre_user_update(struct wlan_objmgr_vdev *vdev, link_info->vdev_id, QDF_TRACE_DEFAULT_PDEV_ID, QDF_PROTO_TYPE_MGMT, QDF_PROTO_MGMT_ASSOC)); - if (is_roam) { + if (is_roam) ucfg_dp_nud_indicate_roam(vdev); - - if (adapter->keep_alive_interval) - hdd_vdev_send_sta_keep_alive_interval(link_info, - hdd_ctx, - adapter->keep_alive_interval); - } /* hdd_objmgr_set_peer_mlme_auth_state */ + + if (adapter->keep_alive_interval && + (is_roam || wlan_vdev_mlme_is_mlo_link_switch_in_progress(vdev))) + hdd_vdev_send_sta_keep_alive_interval(link_info, hdd_ctx, + adapter->keep_alive_interval); } static void diff --git a/core/hdd/src/wlan_hdd_cm_disconnect.c b/core/hdd/src/wlan_hdd_cm_disconnect.c index c432d0c5ea..14f50af394 100644 --- a/core/hdd/src/wlan_hdd_cm_disconnect.c +++ b/core/hdd/src/wlan_hdd_cm_disconnect.c @@ -280,7 +280,9 @@ __hdd_cm_disconnect_handler_post_user_update(struct wlan_hdd_link_info *link_inf ucfg_dp_nud_reset_tracking(vdev); hdd_reset_limit_off_chan(adapter); - hdd_reset_sta_keep_alive_interval(link_info, hdd_ctx); + + if (!is_link_switch) + hdd_reset_sta_keep_alive_interval(link_info, hdd_ctx); hdd_cm_print_bss_info(sta_ctx); }