mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
143 lines
4.9 KiB
Diff
143 lines
4.9 KiB
Diff
From 1ad6e4b00f29d017b196dda7ab96d1cfcbabd7d2 Mon Sep 17 00:00:00 2001
|
|
From: Anilkumar Kolli <akolli@codeaurora.org>
|
|
Date: Tue, 2 Nov 2021 18:22:38 +0530
|
|
Subject: [PATCH 096/120] ath11k: Add missing qmi_txn_cancel()
|
|
|
|
Currently many functions do not follow this guidance when
|
|
qmi_send_request() fails, therefore add missing
|
|
qmi_txn_cancel() in the qmi_send_request() error path.
|
|
|
|
Also remove initialization on 'struct qmi_txn'
|
|
since qmi_tx_init() performs all necessary initialization.
|
|
|
|
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.4.0.1-01838-QCAHKSWPL_SILICONZ-1
|
|
|
|
Signed-off-by: Anilkumar Kolli <akolli@codeaurora.org>
|
|
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
|
Link: https://lore.kernel.org/r/1635857558-21733-1-git-send-email-akolli@codeaurora.org
|
|
---
|
|
drivers/net/wireless/ath/ath11k/qmi.c | 21 ++++++++++++++-------
|
|
1 file changed, 14 insertions(+), 7 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/qmi.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/qmi.c
|
|
@@ -1586,7 +1586,7 @@ static int ath11k_qmi_host_cap_send(stru
|
|
{
|
|
struct qmi_wlanfw_host_cap_req_msg_v01 req;
|
|
struct qmi_wlanfw_host_cap_resp_msg_v01 resp;
|
|
- struct qmi_txn txn = {};
|
|
+ struct qmi_txn txn;
|
|
int ret = 0;
|
|
|
|
memset(&req, 0, sizeof(req));
|
|
@@ -1640,6 +1640,7 @@ static int ath11k_qmi_host_cap_send(stru
|
|
QMI_WLANFW_HOST_CAP_REQ_MSG_V01_MAX_LEN,
|
|
qmi_wlanfw_host_cap_req_msg_v01_ei, &req);
|
|
if (ret < 0) {
|
|
+ qmi_txn_cancel(&txn);
|
|
ath11k_warn(ab, "failed to send host capability request: %d\n", ret);
|
|
goto out;
|
|
}
|
|
@@ -1705,6 +1706,7 @@ static int ath11k_qmi_fw_ind_register_se
|
|
QMI_WLANFW_IND_REGISTER_REQ_MSG_V01_MAX_LEN,
|
|
qmi_wlanfw_ind_register_req_msg_v01_ei, req);
|
|
if (ret < 0) {
|
|
+ qmi_txn_cancel(&txn);
|
|
ath11k_warn(ab, "failed to send indication register request: %d\n",
|
|
ret);
|
|
goto out;
|
|
@@ -1734,7 +1736,7 @@ static int ath11k_qmi_respond_fw_mem_req
|
|
{
|
|
struct qmi_wlanfw_respond_mem_req_msg_v01 *req;
|
|
struct qmi_wlanfw_respond_mem_resp_msg_v01 resp;
|
|
- struct qmi_txn txn = {};
|
|
+ struct qmi_txn txn;
|
|
int ret = 0, i;
|
|
bool delayed;
|
|
|
|
@@ -1783,6 +1785,7 @@ static int ath11k_qmi_respond_fw_mem_req
|
|
QMI_WLANFW_RESPOND_MEM_REQ_MSG_V01_MAX_LEN,
|
|
qmi_wlanfw_respond_mem_req_msg_v01_ei, req);
|
|
if (ret < 0) {
|
|
+ qmi_txn_cancel(&txn);
|
|
ath11k_warn(ab, "failed to respond qmi memory request: %d\n",
|
|
ret);
|
|
goto out;
|
|
@@ -1911,7 +1914,7 @@ static int ath11k_qmi_request_target_cap
|
|
{
|
|
struct qmi_wlanfw_cap_req_msg_v01 req;
|
|
struct qmi_wlanfw_cap_resp_msg_v01 resp;
|
|
- struct qmi_txn txn = {};
|
|
+ struct qmi_txn txn;
|
|
int ret = 0;
|
|
int r;
|
|
|
|
@@ -1930,6 +1933,7 @@ static int ath11k_qmi_request_target_cap
|
|
QMI_WLANFW_CAP_REQ_MSG_V01_MAX_LEN,
|
|
qmi_wlanfw_cap_req_msg_v01_ei, &req);
|
|
if (ret < 0) {
|
|
+ qmi_txn_cancel(&txn);
|
|
ath11k_warn(ab, "failed to send qmi cap request: %d\n",
|
|
ret);
|
|
goto out;
|
|
@@ -2000,7 +2004,7 @@ static int ath11k_qmi_load_file_target_m
|
|
{
|
|
struct qmi_wlanfw_bdf_download_req_msg_v01 *req;
|
|
struct qmi_wlanfw_bdf_download_resp_msg_v01 resp;
|
|
- struct qmi_txn txn = {};
|
|
+ struct qmi_txn txn;
|
|
const u8 *temp = data;
|
|
void __iomem *bdf_addr = NULL;
|
|
int ret;
|
|
@@ -2245,7 +2249,7 @@ static int ath11k_qmi_wlanfw_m3_info_sen
|
|
struct m3_mem_region *m3_mem = &ab->qmi.m3_mem;
|
|
struct qmi_wlanfw_m3_info_req_msg_v01 req;
|
|
struct qmi_wlanfw_m3_info_resp_msg_v01 resp;
|
|
- struct qmi_txn txn = {};
|
|
+ struct qmi_txn txn;
|
|
int ret = 0;
|
|
|
|
memset(&req, 0, sizeof(req));
|
|
@@ -2277,6 +2281,7 @@ static int ath11k_qmi_wlanfw_m3_info_sen
|
|
QMI_WLANFW_M3_INFO_REQ_MSG_V01_MAX_MSG_LEN,
|
|
qmi_wlanfw_m3_info_req_msg_v01_ei, &req);
|
|
if (ret < 0) {
|
|
+ qmi_txn_cancel(&txn);
|
|
ath11k_warn(ab, "failed to send m3 information request: %d\n",
|
|
ret);
|
|
goto out;
|
|
@@ -2303,7 +2308,7 @@ static int ath11k_qmi_wlanfw_mode_send(s
|
|
{
|
|
struct qmi_wlanfw_wlan_mode_req_msg_v01 req;
|
|
struct qmi_wlanfw_wlan_mode_resp_msg_v01 resp;
|
|
- struct qmi_txn txn = {};
|
|
+ struct qmi_txn txn;
|
|
int ret = 0;
|
|
|
|
memset(&req, 0, sizeof(req));
|
|
@@ -2325,6 +2330,7 @@ static int ath11k_qmi_wlanfw_mode_send(s
|
|
QMI_WLANFW_WLAN_MODE_REQ_MSG_V01_MAX_LEN,
|
|
qmi_wlanfw_wlan_mode_req_msg_v01_ei, &req);
|
|
if (ret < 0) {
|
|
+ qmi_txn_cancel(&txn);
|
|
ath11k_warn(ab, "failed to send wlan mode request (mode %d): %d\n",
|
|
mode, ret);
|
|
goto out;
|
|
@@ -2358,7 +2364,7 @@ static int ath11k_qmi_wlanfw_wlan_cfg_se
|
|
struct qmi_wlanfw_wlan_cfg_resp_msg_v01 resp;
|
|
struct ce_pipe_config *ce_cfg;
|
|
struct service_to_pipe *svc_cfg;
|
|
- struct qmi_txn txn = {};
|
|
+ struct qmi_txn txn;
|
|
int ret = 0, pipe_num;
|
|
|
|
ce_cfg = (struct ce_pipe_config *)ab->qmi.ce_cfg.tgt_ce;
|
|
@@ -2419,6 +2425,7 @@ static int ath11k_qmi_wlanfw_wlan_cfg_se
|
|
QMI_WLANFW_WLAN_CFG_REQ_MSG_V01_MAX_LEN,
|
|
qmi_wlanfw_wlan_cfg_req_msg_v01_ei, req);
|
|
if (ret < 0) {
|
|
+ qmi_txn_cancel(&txn);
|
|
ath11k_warn(ab, "failed to send wlan config request: %d\n",
|
|
ret);
|
|
goto out;
|