From 002753cf618d8d52d87b0d6e3fd0c53de06e440b Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Wed, 15 Apr 2020 16:46:49 +0530 Subject: [PATCH] qcacmn: Retrieve peer from mac addr Retrieve peer from mac address to avoid accessing peer even if peer is deleted. Change-Id: I1c9740fc5d3090ef296c4dc4a5afe7022e83dca5 CRs-Fixed: 2663836 --- dp/wifi3.0/dp_rx_mon_status.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dp/wifi3.0/dp_rx_mon_status.c b/dp/wifi3.0/dp_rx_mon_status.c index cc6669cd0e..9627403f7a 100644 --- a/dp/wifi3.0/dp_rx_mon_status.c +++ b/dp/wifi3.0/dp_rx_mon_status.c @@ -514,8 +514,11 @@ static void dp_rx_stats_update(struct dp_pdev *pdev, ppdu_type = ppdu->u.ppdu_type; for (i = 0; i < ppdu->num_users; i++) { + peer = NULL; ppdu_user = &ppdu->user[i]; - peer = dp_peer_find_by_id(soc, ppdu_user->peer_id); + if (ppdu_user->peer_id != HTT_INVALID_PEER) + peer = dp_peer_find_hash_find(soc, ppdu_user->mac_addr, + 0, ppdu_user->vdev_id); if (!peer) peer = pdev->invalid_peer; @@ -687,7 +690,7 @@ static void dp_rx_stats_update(struct dp_pdev *pdev, &peer->stats, ppdu->peer_id, UPDATE_PEER_STATS, pdev->pdev_id); #endif - dp_peer_unref_del_find_by_id(peer); + dp_peer_unref_delete(peer); } } #endif