Ver Fonte

qcacmn: check number of page desc during pool de-initialize

Add number of page desc check for TX/RX desc_pool de-initialization,
avoid unexpected assert in case SPT page_desc_list is not
initialized like SSR case.

Change-Id: I970f0e09a0631260e1cb0d1de23a1de3e8d13f24
CRs-Fixed: 2991334
Jinwei Chen há 4 anos atrás
pai
commit
2eb6b6ab69
2 ficheiros alterados com 10 adições e 0 exclusões
  1. 5 0
      dp/wifi3.0/be/dp_be_rx.c
  2. 5 0
      dp/wifi3.0/be/dp_be_tx.c

+ 5 - 0
dp/wifi3.0/be/dp_be_rx.c

@@ -902,6 +902,11 @@ dp_rx_desc_pool_deinit_be_cc(struct dp_soc *soc,
 	be_soc = dp_get_be_soc_from_dp_soc(soc);
 	page_desc_list = &be_soc->rx_spt_page_desc[pool_id];
 
+	if (!page_desc_list->num_spt_pages) {
+		dp_warn("page_desc_list is empty for pool_id %d", pool_id);
+		return;
+	}
+
 	/* cleanup for each page */
 	page_desc = page_desc_list->spt_page_list_head;
 	while (page_desc) {

+ 5 - 0
dp/wifi3.0/be/dp_be_tx.c

@@ -442,6 +442,11 @@ void dp_tx_desc_pool_deinit_be(struct dp_soc *soc,
 	be_soc = dp_get_be_soc_from_dp_soc(soc);
 	page_desc_list = &be_soc->tx_spt_page_desc[pool_id];
 
+	if (!page_desc_list->num_spt_pages) {
+		dp_warn("page_desc_list is empty for pool_id %d", pool_id);
+		return;
+	}
+
 	/* cleanup for each page */
 	page_desc = page_desc_list->spt_page_list_head;
 	while (page_desc) {