Browse Source

qcacld-3.0: Purge shutdown notification before wma_close

WMA registers for shutdown notification and during wma_close
WMA events are destroyed which are accessed from WMA shutdown
callback. Hence make sure to purge shutdown notification 1st
before calling wma_close.

Change-Id: I868a835f3da52596c0451f9c99638dbc97ea6abe
CRs-Fixed: 2018911
Rajeev Kumar 8 years ago
parent
commit
662d75d26b
1 changed files with 3 additions and 3 deletions
  1. 3 3
      core/cds/src/cds_api.c

+ 3 - 3
core/cds/src/cds_api.c

@@ -568,6 +568,7 @@ err_mac_close:
 	mac_close(gp_cds_context->pMACContext);
 
 err_wma_close:
+	cds_shutdown_notifier_purge();
 	wma_close(gp_cds_context);
 
 	wma_wmi_service_close(gp_cds_context);
@@ -583,7 +584,6 @@ err_bmi_close:
 
 err_sched_close:
 	cds_sched_close(gp_cds_context);
-	cds_shutdown_notifier_purge();
 
 err_concurrency_lock:
 	qdf_mutex_destroy(&cds_ctx->qdf_conc_list_lock);
@@ -1012,6 +1012,8 @@ QDF_STATUS cds_close(struct wlan_objmgr_psoc *psoc, v_CONTEXT_t cds_context)
 
 	cdp_soc_detach(gp_cds_context->dp_soc);
 
+	cds_shutdown_notifier_purge();
+
 	if (true == wma_needshutdown(cds_context)) {
 		QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
 				  "%s: Failed to shutdown wma", __func__);
@@ -1051,8 +1053,6 @@ QDF_STATUS cds_close(struct wlan_objmgr_psoc *psoc, v_CONTEXT_t cds_context)
 		QDF_ASSERT(QDF_IS_STATUS_SUCCESS(qdf_status));
 	}
 
-	cds_shutdown_notifier_purge();
-
 	cds_deinit_log_completion();
 	cds_deinit_ini_config();
 	qdf_timer_module_deinit();