diff --git a/drivers/platform/msm/ipa/ipa_rm_peers_list.c b/drivers/platform/msm/ipa/ipa_rm_peers_list.c index b6046fd5146e..40ac927c42a6 100644 --- a/drivers/platform/msm/ipa/ipa_rm_peers_list.c +++ b/drivers/platform/msm/ipa/ipa_rm_peers_list.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved */ #include @@ -68,6 +69,7 @@ int ipa_rm_peers_list_create(int max_peers, list_alloc_fail: kfree(*peers_list); + *peers_list = NULL; bail: return result; } diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_odl.c b/drivers/platform/msm/ipa/ipa_v3/ipa_odl.c index ba2686809ebe..9d5b68d0cfa1 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa_odl.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa_odl.c @@ -473,6 +473,12 @@ void ipa3_odl_pipe_cleanup(bool is_ssr) IPAERR("adpl pipe not configured\n"); return; } + + if(!ipa3_odl_ctx->odl_state.odl_ep_setup) { + IPAERR("adpl pipe setup not done\n"); + return; + } + if (ipa3_odl_ctx->odl_state.odl_open) ipa_odl_opened = true; diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c b/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c index 28cfaf4bcfd5..ad128a512606 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c @@ -469,8 +469,8 @@ static int ipa3_qmi_send_req_wait(struct qmi_handle *client_handle, mutex_lock(&ipa3_qmi_lock); - if (!client_handle) { - + if (client_handle != ipa_q6_clnt) { + IPADBG("Q6 QMI clinet pointer already freed\n"); mutex_unlock(&ipa3_qmi_lock); return -EINVAL; } @@ -1857,6 +1857,7 @@ void ipa3_qmi_service_exit(void) workqueues_stopped = true; + IPADBG("Entry\n"); /* qmi-service */ if (ipa3_svc_handle != NULL) { qmi_handle_release(ipa3_svc_handle); @@ -1889,6 +1890,7 @@ void ipa3_qmi_service_exit(void) ipa3_qmi_indication_fin = false; ipa3_modem_init_cmplt = false; send_qmi_init_q6 = true; + IPADBG("Exit\n"); } void ipa3_qmi_stop_workqueues(void) diff --git a/drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal_fltrt.c b/drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal_fltrt.c index d62f191f66d8..5baf8df008e3 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal_fltrt.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal_fltrt.c @@ -3532,12 +3532,12 @@ int ipahal_fltrt_init(enum ipa_hw_type ipa_hw_type) if (!IPA_IS_RULE_EQ_VALID(i)) continue; - if (eq_bits & IPA_GET_RULE_EQ_BIT_PTRN(eq_bitfield[i])) { + if (eq_bits & IPA_GET_RULE_EQ_BIT_PTRN(i)) { IPAHAL_ERR("more than eq with same bit. eq=%d\n", i); WARN_ON(1); return -EFAULT; } - eq_bits |= IPA_GET_RULE_EQ_BIT_PTRN(eq_bitfield[i]); + eq_bits |= IPA_GET_RULE_EQ_BIT_PTRN(i); } mem = &ipahal_ctx->empty_fltrt_tbl;