From 0ebf453164ea13683be5cff0421eeabd697345ec Mon Sep 17 00:00:00 2001 From: Sravan Kumar Kairam Date: Wed, 19 Sep 2018 14:12:59 +0530 Subject: [PATCH] qcacld-3.0: Use psoc handle to check for wmi service cap wma_mgmt_nbuf_unmap_cb uses wma handle to check if wmi service capability for mgmt is supported. If wma handle is freed before call back is invoked it returns with out doing unmap of nbuf. Instead of wma handle use psoc object handle which has the information about wmi service capability support. Change-Id: Icbdeb155be0fb5d056dd876faa2bd73f78cd9db7 CRs-Fixed: 2317785 --- core/wma/src/wma_mgmt.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c index 208d18ac0c..cd0270a58b 100644 --- a/core/wma/src/wma_mgmt.c +++ b/core/wma/src/wma_mgmt.c @@ -4377,19 +4377,19 @@ QDF_STATUS wma_mgmt_unified_cmd_send(struct wlan_objmgr_vdev *vdev, void wma_mgmt_nbuf_unmap_cb(struct wlan_objmgr_pdev *pdev, qdf_nbuf_t buf) { - tp_wma_handle wma_handle = cds_get_context(QDF_MODULE_ID_WMA); - - if (!wma_handle) { - WMA_LOGE("%s: wma handle is NULL", __func__); - return; - } + struct wlan_objmgr_psoc *psoc; + qdf_device_t dev; if (!buf) return; - if (wmi_service_enabled(wma_handle->wmi_handle, - wmi_service_mgmt_tx_wmi)) { - qdf_nbuf_unmap_single(wma_handle->qdf_dev, buf, - QDF_DMA_TO_DEVICE); + psoc = wlan_pdev_get_psoc(pdev); + if (!psoc) { + WMA_LOGE("%s: Psoc handle NULL", __func__); + return; } + + dev = wlan_psoc_get_qdf_dev(psoc); + if (wlan_psoc_nif_fw_ext_cap_get(psoc, WLAN_SOC_CEXT_WMI_MGMT_REF)) + qdf_nbuf_unmap_single(dev, buf, QDF_DMA_TO_DEVICE); }