qcacmn: Clean up global desc pool during Umac reset

Make sure that the global dp tx desc pools are cleaned
up only once during MLO umac reset.

Change-Id: Id6e0ac6532b11ffb9ea190b6ab4d481fb486d853
CRs-Fixed: 3647660
此提交包含在:
Pavankumar Nandeshwar
2023-10-26 00:47:44 +05:30
提交者 Ravindra Konda
父節點 136b01ad6b
當前提交 c71f2aaf75
共有 7 個檔案被更改,包括 101 行新增4 行删除

查看文件

@@ -95,15 +95,20 @@ static void dp_tx_desc_clean_up(void *ctxt, void *elem, void *elem_list)
}
}
void dp_tx_desc_pool_cleanup(struct dp_soc *soc, qdf_nbuf_t *nbuf_list)
void dp_tx_desc_pool_cleanup(struct dp_soc *soc, qdf_nbuf_t *nbuf_list,
bool cleanup)
{
int i;
struct dp_tx_desc_pool_s *tx_desc_pool = NULL;
uint8_t num_pool = wlan_cfg_get_num_tx_desc_pool(soc->wlan_cfg_ctx);
if (!cleanup)
return;
for (i = 0; i < num_pool; i++) {
tx_desc_pool = dp_get_tx_desc_pool(soc, i);
TX_DESC_LOCK_LOCK(&tx_desc_pool->lock);
if (tx_desc_pool)
qdf_tx_desc_pool_free_bufs(soc,
&tx_desc_pool->desc_pages,
@@ -112,7 +117,10 @@ void dp_tx_desc_pool_cleanup(struct dp_soc *soc, qdf_nbuf_t *nbuf_list)
true, &dp_tx_desc_clean_up,
nbuf_list);
TX_DESC_LOCK_UNLOCK(&tx_desc_pool->lock);
tx_desc_pool = dp_get_spcl_tx_desc_pool(soc, i);
TX_DESC_LOCK_LOCK(&tx_desc_pool->lock);
if (tx_desc_pool)
qdf_tx_desc_pool_free_bufs(soc,
@@ -121,6 +129,8 @@ void dp_tx_desc_pool_cleanup(struct dp_soc *soc, qdf_nbuf_t *nbuf_list)
tx_desc_pool->elem_count,
true, &dp_tx_desc_clean_up,
nbuf_list);
TX_DESC_LOCK_UNLOCK(&tx_desc_pool->lock);
}
}
#endif