浏览代码

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
Sandeep Puligilla 4 年之前
父节点
当前提交
e9e0f6d6de
共有 1 个文件被更改,包括 0 次插入10 次删除
  1. 0 10
      core/sme/src/common/sme_api.c

+ 0 - 10
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;
 }