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);