Browse Source

qcacld-3.0: Move wmi_stop from pld uevent to wma shutdown notifier

PLD FW down uevent is asynchronous which races against all critical
driver transition events like probe, remove, shutdown, reinit and
hence move wmi_stop to wma shutdown notifier callbakk such that its
protected against all critical driver transition events.

Change-Id: I91046efeab8bc13b9f5c37d5a4d02b66c63e35a9
CRs-Fixed: 2330980
Rajeev Kumar 6 years ago
parent
commit
64beb9fcc9
2 changed files with 1 additions and 2 deletions
  1. 0 2
      core/hdd/src/wlan_hdd_driver_ops.c
  2. 1 0
      core/wma/src/wma_main.c

+ 0 - 2
core/hdd/src/wlan_hdd_driver_ops.c

@@ -1592,8 +1592,6 @@ static void wlan_hdd_pld_uevent(struct device *dev,
 	hdd_info("pld event %d", uevent->uevent);
 
 	wlan_hdd_flush_iface_idle_work();
-	wma_wmi_stop();
-
 	wlan_hdd_set_the_pld_uevent(uevent);
 	mutex_lock(&hdd_init_deinit_lock);
 	wlan_hdd_handle_the_pld_uevent(uevent);

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

@@ -1961,6 +1961,7 @@ static void wma_shutdown_notifier_cb(void *priv)
 
 	qdf_event_set(&wma_handle->wma_resume_event);
 	pmo_ucfg_psoc_wakeup_host_event_received(wma_handle->psoc);
+	wmi_stop(wma_handle->wmi_handle);
 
 	msg.bodyptr = priv;
 	msg.callback = wma_cleanup_vdev_resp_and_hold_req;