diff options
author | Maulik Shah <mkshah@codeaurora.org> | 2018-05-11 10:21:22 +0530 |
---|---|---|
committer | Shirle Yuen <shirleyshukyee@google.com> | 2018-08-05 16:35:40 -0700 |
commit | 9ed6ca0be82dddceb515a7e206004ef02872fcde (patch) | |
tree | 6105bc13afaa58f8380dbe42f2328ee576f7c9c1 | |
parent | 3a9de05edd5fff5e20198071f44c93ab6672dd1d (diff) | |
download | qcom-msm8x09-v3.10-9ed6ca0be82dddceb515a7e206004ef02872fcde.tar.gz |
lpm-levels: Remove kfree for memory allocated with devm_kzalloc
Do not use kfree for memory allocated with devm_kzalloc during
failures as device memory will get freed in device release.
Change-Id: I6c4d3f8ed55ab02e3e70a1fe65452a8817c8b64e
Signed-off-by: Maulik Shah <mkshah@codeaurora.org>
(cherry picked from commit 4be2d5d0ee772d2117f5aa15ae2146ef370c99ce)
-rw-r--r-- | drivers/cpuidle/lpm-levels-of.c | 34 |
1 files changed, 1 insertions, 33 deletions
diff --git a/drivers/cpuidle/lpm-levels-of.c b/drivers/cpuidle/lpm-levels-of.c index cb037922c9c..b7a6a0722e7 100644 --- a/drivers/cpuidle/lpm-levels-of.c +++ b/drivers/cpuidle/lpm-levels-of.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, The Linux Foundation. All rights reserved. +/* Copyright (c) 2014, 2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -342,10 +342,6 @@ static int parse_cluster_params(struct device_node *node, struct lpm_cluster *c) return 0; failed: pr_err("%s(): Failed reading %s\n", __func__, key); - kfree(c->name); - kfree(c->lpm_dev); - c->name = NULL; - c->lpm_dev = NULL; return ret; } @@ -452,8 +448,6 @@ static int parse_cluster_level(struct device_node *node, return 0; failed: pr_err("Failed %s() ret = %d\n", __func__, ret); - kfree(level->mode); - level->mode = NULL; return ret; } @@ -526,7 +520,6 @@ static int parse_cpu_levels(struct device_node *node, struct lpm_cluster *c) { struct device_node *n; int ret = -ENOMEM; - int i; c->cpu = devm_kzalloc(&lpm_pdev->dev, sizeof(*c->cpu), GFP_KERNEL); if (!c->cpu) @@ -562,19 +555,12 @@ static int parse_cpu_levels(struct device_node *node, struct lpm_cluster *c) } return 0; failed: - for (i = 0; i < c->cpu->nlevels; i++) { - kfree(c->cpu->levels[i].name); - c->cpu->levels[i].name = NULL; - } - kfree(c->cpu); - c->cpu = NULL; pr_err("%s(): Failed with error code:%d\n", __func__, ret); return ret; } void free_cluster_node(struct lpm_cluster *cluster) { - int i; struct lpm_cluster *cl, *m; list_for_each_entry_safe(cl, m, &cluster->child, list) { @@ -582,22 +568,6 @@ void free_cluster_node(struct lpm_cluster *cluster) free_cluster_node(cl); }; - if (cluster->cpu) { - for (i = 0; i < cluster->cpu->nlevels; i++) { - kfree(cluster->cpu->levels[i].name); - cluster->cpu->levels[i].name = NULL; - } - } - for (i = 0; i < cluster->nlevels; i++) { - kfree(cluster->levels[i].mode); - cluster->levels[i].mode = NULL; - } - kfree(cluster->cpu); - kfree(cluster->name); - kfree(cluster->lpm_dev); - cluster->cpu = NULL; - cluster->name = NULL; - cluster->lpm_dev = NULL; cluster->ndevices = 0; } @@ -681,9 +651,7 @@ failed_parse_cluster: list_del(&c->list); free_cluster_node(c); failed_parse_params: - c->parent = NULL; pr_err("Failed parse params\n"); - kfree(c); return NULL; } |