aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaulik Shah <mkshah@codeaurora.org>2018-05-11 10:21:22 +0530
committerShirle Yuen <shirleyshukyee@google.com>2018-08-05 16:35:40 -0700
commit9ed6ca0be82dddceb515a7e206004ef02872fcde (patch)
tree6105bc13afaa58f8380dbe42f2328ee576f7c9c1
parent3a9de05edd5fff5e20198071f44c93ab6672dd1d (diff)
downloadqcom-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.c34
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;
}