diff --git a/umac/mlo_mgr/src/wlan_mlo_mgr_peer.c b/umac/mlo_mgr/src/wlan_mlo_mgr_peer.c index 51eb2bbe9e..3999b43c85 100644 --- a/umac/mlo_mgr/src/wlan_mlo_mgr_peer.c +++ b/umac/mlo_mgr/src/wlan_mlo_mgr_peer.c @@ -745,6 +745,7 @@ QDF_STATUS wlan_mlo_peer_create(struct wlan_objmgr_vdev *vdev, struct wlan_objmgr_vdev *vdev_link; QDF_STATUS status; uint16_t i; + struct wlan_objmgr_peer *assoc_peer; /* get ML VDEV from VDEV */ ml_dev = vdev->mlo_dev_ctx; @@ -894,6 +895,20 @@ QDF_STATUS wlan_mlo_peer_create(struct wlan_objmgr_vdev *vdev, ml_dev->mld_id, QDF_MAC_ADDR_REF(ml_peer->peer_mld_addr.bytes), ml_peer); + + /* + * wlan_mlo_peer_create() is trigggered after getting peer + * assoc confirm from FW. For single link MLO connection, it is + * OK to trigger assoc response from here. + */ + if (wlan_vdev_mlme_get_opmode(vdev) == QDF_SAP_MODE) { + if (ml_peer->max_links == ml_peer->link_peer_cnt) { + assoc_peer = ml_peer->peer_list[0].link_peer; + if (assoc_peer) + mlo_mlme_peer_assoc_resp(assoc_peer); + } + } + return QDF_STATUS_SUCCESS; }