From 9a551ddff35d4496c7b868792465d9cce5ed806a Mon Sep 17 00:00:00 2001 From: Gauri Joshi Date: Mon, 28 Dec 2020 10:31:37 +0530 Subject: [PATCH] msm: mhi: Release inbuf_list memory in channel disconnect Driver allocates in_buf_list.addr during open_client_mhi_channels, which is called for every CONNECT event for AT_CTRL channels. in_buf_list.addr is not released during DISCONNECT event. Adding a fix to release this memory during a channel DISCONNECT event. Change-Id: Idd7cac731137934d820e6a8a07335982575a913b Signed-off-by: Subramanian Ananthanarayanan Signed-off-by: Gauri Joshi --- drivers/platform/msm/mhi_dev/mhi_uci.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/platform/msm/mhi_dev/mhi_uci.c b/drivers/platform/msm/mhi_dev/mhi_uci.c index e4edf6f97730..e694f086bac8 100644 --- a/drivers/platform/msm/mhi_dev/mhi_uci.c +++ b/drivers/platform/msm/mhi_dev/mhi_uci.c @@ -1941,7 +1941,7 @@ static void mhi_uci_at_ctrl_tre_cb(struct mhi_dev_client_cb_reason *reason) static void mhi_uci_at_ctrl_client_cb(struct mhi_dev_client_cb_data *cb_data) { struct uci_client *client = cb_data->user_data; - int rc; + int rc, i; struct mhi_req *ureq; uci_log(UCI_DBG_VERBOSE, " Rcvd MHI cb for channel %d, state %d\n", @@ -1980,6 +1980,12 @@ static void mhi_uci_at_ctrl_client_cb(struct mhi_dev_client_cb_data *cb_data) /* Add to in-use list */ list_add_tail(&ureq->list, &client->req_list); } + + for (i = 0; i < (client->in_chan_attr->nr_trbs); i++) { + kfree(client->in_buf_list[i].addr); + client->in_buf_list[i].addr = NULL; + client->in_buf_list[i].buf_size = 0; + } } }