summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMahesh Sivasubramanian <msivasub@codeaurora.org>2015-12-23 08:58:02 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:16:11 -0700
commitb76b65b3e4e58a975026872dc685c2fbe56ea13a (patch)
tree6d479d4fe509d7559f435a17bd9c721a3796758d
parentb780053bf349562b91d4e3f47859eb004d66850d (diff)
soc: qcom: rpm-smd: free NOACK messages upon receipt
For RPM messages that dont require to be waited on, when an ACK is received, there are no drivers waiting on it. So the element never gets freed resulting in a memory leak. Change-Id: I5cce36750e0acfa66b3d23a770986bd1de20601c Signed-off-by: Mahesh Sivasubramanian <msivasub@codeaurora.org>
-rw-r--r--drivers/soc/qcom/rpm-smd.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/soc/qcom/rpm-smd.c b/drivers/soc/qcom/rpm-smd.c
index 193dfee8d1ea..9eef7bd06676 100644
--- a/drivers/soc/qcom/rpm-smd.c
+++ b/drivers/soc/qcom/rpm-smd.c
@@ -915,8 +915,10 @@ static void msm_rpm_process_ack(uint32_t msg_id, int errno)
elem->errno = errno;
elem->ack_recd = true;
complete(&elem->ack);
- if (elem->delete_on_ack)
+ if (elem->delete_on_ack) {
list_del(&elem->list);
+ kfree(elem);
+ }
break;
}
elem = NULL;