From e9e0f6d6de7e133344eec8da4eff75bfabee380d Mon Sep 17 00:00:00 2001 From: Sandeep Puligilla Date: Wed, 20 May 2020 09:06:20 -0700 Subject: [PATCH] qcacld-3.0: Fix SME global mutex deadlock hdd_bus_bw_work_handler API is stuck waiting on mutex sme_global_lock acquired by scheduler thread. WIFI logger start request API doesn't need to acquire sme global lock because the request is posted to scheudler thread and the request is processed in schduler thread context. Change-Id: I34522abdc54d1a7d6b5acb546179194b4ee869d8 CRs-Fixed: 2690483 --- core/sme/src/common/sme_api.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index df73b189eb66..c3c32bd08421 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -10950,7 +10950,6 @@ QDF_STATUS sme_wifi_start_logger(mac_handle_t mac_handle, struct sir_wifi_start_log start_log) { QDF_STATUS status = QDF_STATUS_SUCCESS; - struct mac_context *mac = MAC_CONTEXT(mac_handle); struct scheduler_msg message = {0}; struct sir_wifi_start_log *req_msg; uint32_t len; @@ -10968,14 +10967,6 @@ QDF_STATUS sme_wifi_start_logger(mac_handle_t mac_handle, req_msg->size = start_log.size; req_msg->is_pktlog_buff_clear = start_log.is_pktlog_buff_clear; - status = sme_acquire_global_lock(&mac->sme); - if (status != QDF_STATUS_SUCCESS) { - sme_err("sme_acquire_global_lock failed(status=%d)", status); - qdf_mem_free(req_msg); - return status; - } - - /* Serialize the req through MC thread */ message.bodyptr = req_msg; message.type = SIR_HAL_START_STOP_LOGGING; status = scheduler_post_message(QDF_MODULE_ID_SME, @@ -10986,7 +10977,6 @@ QDF_STATUS sme_wifi_start_logger(mac_handle_t mac_handle, qdf_mem_free(req_msg); status = QDF_STATUS_E_FAILURE; } - sme_release_global_lock(&mac->sme); return status; }