Forráskód Böngészése

qcacld-3.0: Destroy tx_frm_download_comp_event in wma_close

qcacld-2.0 to qcacld-3.0 propagation

Currently tx_frm_download_comp_event is used in Mcthread and destroyed
in wma_stop, when wma_stop is called, Mcthread has not exited yet.
In stress test, this event is destoryed but Mcthread is still using,
so crash occurs.

Solution is that destroy event in wma_close to avoid the case that after
destroy this event is still used.

Change-Id: I7d4e97ab261f586edfb90268544a2cda4e90a0b2
CRs-Fixed: 958906
Kai Liu 8 éve
szülő
commit
27f2037fa6
2 módosított fájl, 2 hozzáadás és 5 törlés
  1. 0 5
      core/wma/src/wma_data.c
  2. 2 0
      core/wma/src/wma_main.c

+ 0 - 5
core/wma/src/wma_data.c

@@ -1556,11 +1556,6 @@ QDF_STATUS wma_tx_detach(tp_wma_handle wma_handle)
 						NULL, txrx_pdev);
 		}
 	}
-	/* Destroy Tx Frame Complete event */
-	qdf_event_destroy(&wma_handle->tx_frm_download_comp_event);
-
-	/* Tx queue empty check event (dummy event) */
-	qdf_event_destroy(&wma_handle->tx_queue_empty_event);
 
 	/* Reset Tx Frm Callbacks */
 	wma_handle->tx_frm_download_comp_cb = NULL;

+ 2 - 0
core/wma/src/wma_main.c

@@ -3475,6 +3475,8 @@ QDF_STATUS wma_close(void *cds_ctx)
 	qdf_event_destroy(&wma_handle->wma_resume_event);
 	qdf_event_destroy(&wma_handle->runtime_suspend);
 	qdf_event_destroy(&wma_handle->recovery_event);
+	qdf_event_destroy(&wma_handle->tx_frm_download_comp_event);
+	qdf_event_destroy(&wma_handle->tx_queue_empty_event);
 	wma_cleanup_vdev_resp(wma_handle);
 	wma_cleanup_hold_req(wma_handle);
 	qdf_wake_lock_destroy(&wma_handle->wmi_cmd_rsp_wake_lock);