diff --git a/dp/wifi3.0/dp_rx_buffer_pool.c b/dp/wifi3.0/dp_rx_buffer_pool.c index 6f40039c3d62..fec91ee072fc 100644 --- a/dp/wifi3.0/dp_rx_buffer_pool.c +++ b/dp/wifi3.0/dp_rx_buffer_pool.c @@ -373,10 +373,12 @@ static void dp_rx_refill_buff_pool_deinit(struct dp_soc *soc, u8 mac_id) struct rx_refill_buff_pool *buff_pool = &soc->rx_refill_buff_pool; struct rx_desc_pool *rx_desc_pool = &soc->rx_desc_buf[mac_id]; qdf_nbuf_t nbuf; + uint32_t count = 0; if (!buff_pool->is_initialized) return; + buff_pool->in_rx_refill_lock = true; while ((nbuf = dp_rx_refill_buff_pool_dequeue_nbuf(soc))) { dp_ipa_handle_rx_buf_smmu_mapping(soc, nbuf, rx_desc_pool->buf_size, @@ -385,8 +387,14 @@ static void dp_rx_refill_buff_pool_deinit(struct dp_soc *soc, u8 mac_id) QDF_DMA_BIDIRECTIONAL, rx_desc_pool->buf_size); qdf_nbuf_free(nbuf); + count++; } + buff_pool->in_rx_refill_lock = false; + dp_info("Rx refill buffers freed during deinit %u qlen: %u", + count, buff_pool->bufq_len); + + qdf_spinlock_destroy(&buff_pool->bufq_lock); buff_pool->is_initialized = false; }