qcacmn: Reset tx desc as part of flow pool delete

Tx desc flow pool for the vdev is not deleted as part
of disconnection due to tx_desc pending to be processed
in tx comp ring. Hdd_stop is triggered immediately after
this causing dp vdev detach. In parallel, the tx desc
from the tx comp ring is processed, wherein stale vdev
address is derefernced to get dp soc causing page fault.

Fix is to reset tx desc by setting the vdev to NULL as
part of dp_tx_delete_flow_pool and also reset count to
zero in dp_tx_comp_handler before ring desc process loop.

Change-Id: I66f718668ba84f89106d09e624d9593f89479e55
CRs-Fixed: 2683874
此提交包含在:
Yeshwanth Sriram Guntuka
2020-05-13 09:24:53 +05:30
提交者 nshrivas
父節點 e1c2e73b6c
當前提交 6159db7efa
共有 3 個檔案被更改,包括 15 行新增7 行删除

查看文件

@@ -503,4 +503,6 @@ QDF_STATUS dp_peer_set_tx_capture_enabled(struct dp_pdev *pdev,
return QDF_STATUS_SUCCESS;
}
#endif
void dp_tx_desc_flush(struct dp_pdev *pdev, struct dp_vdev *vdev,
bool force_free);
#endif