From 37204fd4701cc746a1a7c9f4de435dca939bdf54 Mon Sep 17 00:00:00 2001 From: Jingxiang Ge Date: Fri, 24 May 2019 18:14:29 +0800 Subject: [PATCH] qcacld-3.0: Move tdls_osif_init_cb after checking tdls_feature_flags If tdls feature is disabled, as currently tdls_osif_init_cb is called before checking flags, tdls_osif_deinit_cb will be missed which causes memory leak. Do tdls_osif_init_cb after checking tdls_feature_flags. Change-Id: I008c69a9b39f5321d1ca79f5193539f5abd32a02 CRs-Fixed: 2459853 --- components/tdls/core/src/wlan_tdls_main.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/components/tdls/core/src/wlan_tdls_main.c b/components/tdls/core/src/wlan_tdls_main.c index 62ec16164da5..746324d6c1b8 100644 --- a/components/tdls/core/src/wlan_tdls_main.c +++ b/components/tdls/core/src/wlan_tdls_main.c @@ -256,17 +256,18 @@ QDF_STATUS tdls_vdev_obj_create_notification(struct wlan_objmgr_vdev *vdev, return QDF_STATUS_E_NOMEM; } - if (tdls_soc_obj->tdls_osif_init_cb) { - status = tdls_soc_obj->tdls_osif_init_cb(vdev); - if (QDF_IS_STATUS_ERROR(status)) - return status; - } tdls_feature_flags = tdls_soc_obj->tdls_configs.tdls_feature_flags; if (!TDLS_IS_ENABLED(tdls_feature_flags)) { tdls_debug("disabled in ini"); return QDF_STATUS_E_NOSUPPORT; } + if (tdls_soc_obj->tdls_osif_init_cb) { + status = tdls_soc_obj->tdls_osif_init_cb(vdev); + if (QDF_IS_STATUS_ERROR(status)) + return status; + } + /* TODO: Add concurrency check */ tdls_vdev_obj = qdf_mem_malloc(sizeof(*tdls_vdev_obj));