|
@@ -1633,10 +1633,8 @@ void ol_txrx_pdev_detach(ol_txrx_pdev_handle pdev, int force)
|
|
|
ol_txrx_peer_find_hash_erase(pdev);
|
|
|
}
|
|
|
|
|
|
- htt_deregister_rx_pkt_dump_callback(pdev->htt_pdev);
|
|
|
- ol_tx_deregister_flow_control(pdev);
|
|
|
- /* Stop the communication between HTT and target at first */
|
|
|
- htt_detach_target(pdev->htt_pdev);
|
|
|
+ /* to get flow pool status before freeing descs */
|
|
|
+ ol_tx_dump_flow_pool_info();
|
|
|
|
|
|
for (i = 0; i < pdev->tx_desc.pool_size; i++) {
|
|
|
void *htt_tx_desc;
|
|
@@ -1660,6 +1658,11 @@ void ol_txrx_pdev_detach(ol_txrx_pdev_handle pdev, int force)
|
|
|
htt_tx_desc_free(pdev->htt_pdev, htt_tx_desc);
|
|
|
}
|
|
|
|
|
|
+ htt_deregister_rx_pkt_dump_callback(pdev->htt_pdev);
|
|
|
+ ol_tx_deregister_flow_control(pdev);
|
|
|
+ /* Stop the communication between HTT and target at first */
|
|
|
+ htt_detach_target(pdev->htt_pdev);
|
|
|
+
|
|
|
qdf_mem_multi_pages_free(pdev->osdev,
|
|
|
&pdev->tx_desc.desc_pages, 0, true);
|
|
|
pdev->tx_desc.freelist = NULL;
|