Merge "msm: ipa3: Handle race condition to avoid NULL access"

This commit is contained in:
qctecmdr 2022-04-26 08:36:34 -07:00 • committed by Gerrit - the friendly Code Review server
commit f2729f4a13

View file

@ -467,14 +467,22 @@ static int ipa3_qmi_send_req_wait(struct qmi_handle *client_handle,
struct qmi_txn txn;
int ret;
mutex_lock(&ipa3_qmi_lock);
if (!client_handle) {
mutex_unlock(&ipa3_qmi_lock);
return -EINVAL;
}
ret = qmi_txn_init(client_handle, &txn, resp_desc->ei_array, resp);
if (ret < 0) {
IPAWANERR("QMI txn init failed, ret= %d\n", ret);
mutex_unlock(&ipa3_qmi_lock);
return ret;
}
mutex_lock(&ipa3_qmi_lock);
ret = qmi_send_request(client_handle,
&ipa3_qmi_ctx->server_sq,
&txn,
@ -483,19 +491,16 @@ static int ipa3_qmi_send_req_wait(struct qmi_handle *client_handle,
req_desc->ei_array,
req);
if (unlikely(!ipa_q6_clnt)) {
mutex_unlock(&ipa3_qmi_lock);
return -EINVAL;
}
mutex_unlock(&ipa3_qmi_lock);
if (ret < 0) {
qmi_txn_cancel(&txn);
mutex_unlock(&ipa3_qmi_lock);
return ret;
}
ret = qmi_txn_wait(&txn, msecs_to_jiffies(timeout_ms));
ret = qmi_txn_wait(&txn, msecs_to_jiffies(timeout_ms));
mutex_unlock(&ipa3_qmi_lock);
return ret;
}