From b7b5ec0c8a5a84ee837256b24cd7bf871d4905ff Mon Sep 17 00:00:00 2001 From: Amit Mehta Date: Mon, 14 Aug 2023 04:18:14 -0700 Subject: [PATCH] qcacmn: Do not set ref count as 1 for MLD peer During dp_vdev_flush_peers after peer unamp ref_cnt for peer is set to 1. Which in case if peer unamp for MLD peer is called before link peers from dp_vdev_flush_peers, it will result in MLD peer delete before link peer. To avoid MLD peer delete before Link peer, after peer unmap in dp_vdev_flush_peers do not explicitly set ref_cnt as 1 for MLD peer. Change-Id: If7ab63eb213dc482205f3847f0b32e246ca76d51 CRs-Fixed: 3585860 --- dp/wifi3.0/dp_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index b6d932dfb0..8ba6275d93 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -4279,7 +4279,8 @@ static void dp_vdev_flush_peers(struct cdp_vdev *vdev_handle, vdev->vdev_id, peer->mac_addr.raw, 0, DP_PEER_WDS_COUNT_INVALID); - SET_PEER_REF_CNT_ONE(peer); + if (!IS_MLO_DP_MLD_PEER(peer)) + SET_PEER_REF_CNT_ONE(peer); } else if (IS_MLO_DP_LINK_PEER(peer) || IS_MLO_DP_MLD_PEER(peer)) { dp_info("peer: " QDF_MAC_ADDR_FMT " is getting unmap",