summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/sme/src/common/sme_api.c27
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;
}