From 49bd1b5fa5e7cbf4950ece03cb2474dbed0962cf Mon Sep 17 00:00:00 2001 From: Wu Gao Date: Fri, 21 Dec 2018 11:19:07 +0800 Subject: [PATCH] qcacmn: Check mgmt txrx desc element status before put to free list To avoid double add to free list, check mgmt txrx desc element status firstly. Change-Id: Ib8f6f719016e19a76cc4fd1007800abf59ebf872 CRs-Fixed: 2348587 --- umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_main.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_main.c b/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_main.c index d570f00b4460..d68763bc0fd0 100644 --- a/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_main.c +++ b/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_main.c @@ -144,6 +144,12 @@ void wlan_mgmt_txrx_desc_put( desc = &mgmt_txrx_pdev_ctx->mgmt_desc_pool.pool[desc_id]; qdf_spin_lock_bh(&mgmt_txrx_pdev_ctx->mgmt_desc_pool.desc_pool_lock); + if (!desc->in_use) { + qdf_spin_unlock_bh(&mgmt_txrx_pdev_ctx->mgmt_desc_pool. + desc_pool_lock); + mgmt_txrx_err("desc %d is freed", desc_id); + return; + } desc->in_use = false; qdf_list_insert_front(&mgmt_txrx_pdev_ctx->mgmt_desc_pool.free_list, &desc->entry);