From 6f6a5688c9540c86acd82d1e50bd0a2c02862c1c Mon Sep 17 00:00:00 2001 From: Kiran Kumar Lokere Date: Fri, 12 Oct 2018 19:08:57 -0700 Subject: [PATCH] qcacld-3.0: Fix issue with Nss setting status Update Nss routine always returns failure status to user space. Fix issue to send correct response to user space. Change-Id: I12342ee531fc790b3042d8dcd8f5bb4b7a97e9fe CRs-Fixed: 2340073 --- core/hdd/src/wlan_hdd_cfg.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c index 062a6d4a4d..006eb9973b 100644 --- a/core/hdd/src/wlan_hdd_cfg.c +++ b/core/hdd/src/wlan_hdd_cfg.c @@ -4713,9 +4713,11 @@ QDF_STATUS hdd_update_nss(struct hdd_adapter *adapter, uint8_t nss) enable2x2 = (nss == 1) ? 0 : 1; - status = ucfg_mlme_get_vht_enable2x2(hdd_ctx->psoc, &bval); - if (!QDF_IS_STATUS_SUCCESS(status)) + qdf_status = ucfg_mlme_get_vht_enable2x2(hdd_ctx->psoc, &bval); + if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { hdd_err("unable to get vht_enable2x2"); + return QDF_STATUS_E_FAILURE; + } if (bval == enable2x2) { hdd_debug("NSS same as requested"); @@ -4733,9 +4735,11 @@ QDF_STATUS hdd_update_nss(struct hdd_adapter *adapter, uint8_t nss) return QDF_STATUS_E_INVAL; } - status = ucfg_mlme_set_vht_enable2x2(hdd_ctx->psoc, enable2x2); - if (!QDF_IS_STATUS_SUCCESS(status)) - hdd_err("unable to get vht_enable2x2"); + qdf_status = ucfg_mlme_set_vht_enable2x2(hdd_ctx->psoc, enable2x2); + if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { + hdd_err("Failed to set vht_enable2x2"); + return QDF_STATUS_E_FAILURE; + } if (!enable2x2) { /* 1x1 */ @@ -4767,7 +4771,7 @@ QDF_STATUS hdd_update_nss(struct hdd_adapter *adapter, uint8_t nss) qdf_status = ucfg_mlme_get_ht_cap_info(hdd_ctx->psoc, &ht_cap_info); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { hdd_err("Failed to get HT Cap info"); - status = false; + goto skip_ht_cap_update; } if (!(hdd_ctx->ht_tx_stbc_supported && enable2x2)) { @@ -4783,11 +4787,10 @@ QDF_STATUS hdd_update_nss(struct hdd_adapter *adapter, uint8_t nss) qdf_status = ucfg_mlme_set_ht_cap_info(hdd_ctx->psoc, ht_cap_info); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { - status = false; hdd_err("Could not set the HT_CAP_INFO"); } - - status = ucfg_mlme_update_nss_vht_cap(hdd_ctx->psoc); +skip_ht_cap_update: + qdf_status = ucfg_mlme_update_nss_vht_cap(hdd_ctx->psoc); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { hdd_err("Failed to set update_nss_vht_cap"); status = false;