From b4944be672a30dc01fc106d5bb90c52a52c06034 Mon Sep 17 00:00:00 2001 From: Wu Gao Date: Thu, 15 Aug 2019 15:23:07 +0800 Subject: [PATCH] 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 --- core/hdd/src/wlan_hdd_main.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 13d0cb7d41bc..beecdafbc0bf 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/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)