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
此提交包含在:
@@ -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
|
||||
|
新增問題並參考
封鎖使用者