浏览代码

qcacld-3.0: Flush the recovery work as a part of idle shutdown

During idle shutdown(T1 Thread), Driver sends the PDEV
suspend command to FW. If ACK is not received, driver initiates
the work for self recovery. As a part of self recovery(T2 thread)
driver allocates  the memory and sends the force fw hang cmd and
wait for the event.
T1 thread continues and stop all the modules and check for mem leaks.
Since t2 thread is not completed and free the memory, the crash
happens as a part of mem leak check.

Fix this race condition by cancelling and flushing the recovery work
in cds close.

CRs-Fixed: 2730021
Change-Id: Ieffff621e0838b341531c5b7feda1277ee4f70fd
Sachin Ahuja 4 年之前
父节点
当前提交
e03b460045
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      core/cds/src/cds_api.c

+ 2 - 0
core/cds/src/cds_api.c

@@ -1306,6 +1306,8 @@ QDF_STATUS cds_close(struct wlan_objmgr_psoc *psoc)
 
 	dispatcher_psoc_close(psoc);
 
+	qdf_flush_work(&gp_cds_context->cds_recovery_work);
+
 	qdf_status = wma_wmi_work_close();
 	if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
 		cds_err("Failed to close wma_wmi_work");