Explorar el Código

qcacld-3.0: Call target_if_init after dispatcher_init

Direct buffer tx component initializes in target_if_init, which cause
platform assert since g_umac_glb_obj is NULL. So change the order to
avoid NULL pointer access.

Change-Id: I348775d08ccc478caef605c2ae8d1b6d65d77eb2
CRs-Fixed: 2497809
Wu Gao hace 5 años
padre
commit
b4944be672
Se han modificado 1 ficheros con 9 adiciones y 9 borrados
  1. 9 9
      core/hdd/src/wlan_hdd_main.c

+ 9 - 9
core/hdd/src/wlan_hdd_main.c

@@ -13603,22 +13603,22 @@ static QDF_STATUS hdd_component_init(void)
 	QDF_STATUS status;
 
 	/* initialize converged components */
-	status = target_if_init(wma_get_psoc_from_scn_handle);
-	if (QDF_IS_STATUS_ERROR(status))
-		return status;
-
 	status = ucfg_mlme_global_init();
 	if (QDF_IS_STATUS_ERROR(status))
-		goto target_if_deinit;
+		return status;
 
 	status = dispatcher_init();
 	if (QDF_IS_STATUS_ERROR(status))
 		goto mlme_global_deinit;
 
+	status = target_if_init(wma_get_psoc_from_scn_handle);
+	if (QDF_IS_STATUS_ERROR(status))
+		goto dispatcher_deinit;
+
 	/* initialize non-converged components */
 	status = ucfg_mlme_init();
 	if (QDF_IS_STATUS_ERROR(status))
-		goto dispatcher_deinit;
+		goto target_if_deinit;
 
 	status = ucfg_fwol_init();
 	if (QDF_IS_STATUS_ERROR(status))
@@ -13695,12 +13695,12 @@ fwol_deinit:
 	ucfg_fwol_deinit();
 mlme_deinit:
 	ucfg_mlme_deinit();
+target_if_deinit:
+	target_if_deinit();
 dispatcher_deinit:
 	dispatcher_deinit();
 mlme_global_deinit:
 	ucfg_mlme_global_deinit();
-target_if_deinit:
-	target_if_deinit();
 
 	return status;
 }
@@ -13728,9 +13728,9 @@ static void hdd_component_deinit(void)
 	ucfg_mlme_deinit();
 
 	/* deinitialize converged components */
+	target_if_deinit();
 	dispatcher_deinit();
 	ucfg_mlme_global_deinit();
-	target_if_deinit();
 }
 
 QDF_STATUS hdd_component_psoc_open(struct wlan_objmgr_psoc *psoc)