From 57dd7d9ac1d9e4a3981580dc30dfcdd30860e028 Mon Sep 17 00:00:00 2001 From: Deeksha Gupta Date: Wed, 1 Sep 2021 13:16:27 +0530 Subject: [PATCH] qcacld-3.0: Release the peer reference in twt_get_status In ucfg_twt_get_all_peer_session_params peer reference is acquired and its not released leading to the reference leak, leading to vdev destroy timeout. Release the peer reference to resolve the issue. Change-Id: I9992376473c30365f15fcdb8e374c856bc169d6b CRs-Fixed: 3027189 --- .../cp_stats/dispatcher/src/wlan_cp_stats_mc_ucfg_api.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/components/cp_stats/dispatcher/src/wlan_cp_stats_mc_ucfg_api.c b/components/cp_stats/dispatcher/src/wlan_cp_stats_mc_ucfg_api.c index 2fbbc8bdf271..7d84db961fd0 100644 --- a/components/cp_stats/dispatcher/src/wlan_cp_stats_mc_ucfg_api.c +++ b/components/cp_stats/dispatcher/src/wlan_cp_stats_mc_ucfg_api.c @@ -253,16 +253,21 @@ ucfg_twt_get_all_peer_session_params(struct wlan_objmgr_psoc *psoc_obj, } if (opmode == QDF_STA_MODE && - num_twt_session >= TWT_PEER_MAX_SESSIONS) + num_twt_session >= TWT_PEER_MAX_SESSIONS) { + wlan_objmgr_peer_release_ref(peer, WLAN_CP_STATS_ID); goto done; + } if (opmode == QDF_SAP_MODE && - num_twt_session >= (sap_max_peer * TWT_PEER_MAX_SESSIONS)) + num_twt_session >= (sap_max_peer * TWT_PEER_MAX_SESSIONS)) { + wlan_objmgr_peer_release_ref(peer, WLAN_CP_STATS_ID); goto done; + } peer_next = wlan_peer_get_next_active_peer_of_vdev( vdev, peer_list, peer, WLAN_CP_STATS_ID); + wlan_objmgr_peer_release_ref(peer, WLAN_CP_STATS_ID); peer = peer_next; }