From 67df961d63a293fc2e7396aa813366fa9c479f3b Mon Sep 17 00:00:00 2001 From: Bing Sun Date: Thu, 7 Apr 2022 11:12:06 +0800 Subject: [PATCH] qcacmn: Allow MLO sta connetion with single link For single link MLO connection, there is no partner peer creation, so wlan_mlo_link_peer_attach is not triggered. wlan_mlo_peer_create is good enough to trigger mlo_mlme_peer_assoc_resp. Change-Id: Ia76503e146a07d15d7b263aa36f9e8c4d110fc6e CRs-Fixed: 3168623 --- umac/mlo_mgr/src/wlan_mlo_mgr_peer.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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; }