diff options
| -rw-r--r-- | core/sme/src/common/sme_api.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 2659e25d70f4..f66c11a245b0 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -18709,19 +18709,24 @@ QDF_STATUS sme_get_chain_rssi(tHalHandle phal, *req_msg = *input; status = sme_acquire_global_lock(&pmac->sme); - if (QDF_STATUS_SUCCESS == status) { - /* serialize the req through MC thread */ - cds_message.bodyptr = req_msg; - cds_message.type = SIR_HAL_GET_CHAIN_RSSI_REQ; - cds_status = cds_mq_post_message(QDF_MODULE_ID_WMA, &cds_message); - if (!QDF_IS_STATUS_SUCCESS(cds_status)) { - QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR, - FL("Post Get Chain Rssi msg fail")); - status = QDF_STATUS_E_FAILURE; - } - sme_release_global_lock(&pmac->sme); + if (QDF_IS_STATUS_ERROR(status)) { + qdf_mem_free(req_msg); + return QDF_STATUS_E_FAILURE; } + /* serialize the req through MC thread */ + cds_message.bodyptr = req_msg; + cds_message.type = SIR_HAL_GET_CHAIN_RSSI_REQ; + cds_status = cds_mq_post_message(QDF_MODULE_ID_WMA, &cds_message); + if (QDF_IS_STATUS_ERROR(status)) { + QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR, + FL("Post Get Chain Rssi msg fail")); + qdf_mem_free(req_msg); + status = QDF_STATUS_E_FAILURE; + } + sme_release_global_lock(&pmac->sme); + + return status; } |
