From 8df4c76c582a119d4b42ab7d52ae640e7b48aec5 Mon Sep 17 00:00:00 2001 From: Alok Kumar Date: Tue, 4 Dec 2018 18:06:29 +0530 Subject: [PATCH] qcacld-3.0: Set self_peer to NULL in monitor mode if ref cnt is 0 In monitor mode, pdev->self_peer is not updated before deleting the peer in ol_txrx_peer_release_ref when peer ref_cnt becomes 0. This leads the stale peer stored in pdev->self_peer. The pdev->self_peer is not updated during peer creation due to this stale peer. Update the pdev->self_peer to NULL when peer ref cnt becomes 0 Change-Id: Id09771a1a7c5a363cf3251af829ac8ff50d38a5b CRs-Fixed: 2356492 --- core/dp/txrx/ol_txrx.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c index 0bccfc9e0aae..11b2aef3be8f 100644 --- a/core/dp/txrx/ol_txrx.c +++ b/core/dp/txrx/ol_txrx.c @@ -3090,6 +3090,10 @@ int ol_txrx_peer_release_ref(ol_txrx_peer_handle peer, ol_txrx_dump_peer_access_list(peer); + if (QDF_GLOBAL_MONITOR_MODE == cds_get_conparam() && + pdev->self_peer == peer) + pdev->self_peer = NULL; + qdf_mem_free(peer); } else { access_list = qdf_atomic_read(&peer->access_list[debug_id]);