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>
This commit is contained in:
parent
add5b29589
commit
f68dd7dac0
|
@ -607,10 +607,6 @@ static int parse_legacy_cluster_params(struct device_node *node,
|
||||||
return 0;
|
return 0;
|
||||||
failed:
|
failed:
|
||||||
pr_err("%s(): Failed reading %s\n", __func__, key);
|
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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -787,8 +783,6 @@ static int parse_cluster_level(struct device_node *node,
|
||||||
return 0;
|
return 0;
|
||||||
failed:
|
failed:
|
||||||
pr_err("Failed %s() key = %s ret = %d\n", __func__, key, ret);
|
pr_err("Failed %s() key = %s ret = %d\n", __func__, key, ret);
|
||||||
kfree(level->mode);
|
|
||||||
level->mode = NULL;
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -968,19 +962,12 @@ static int parse_cpu_levels(struct device_node *node, struct lpm_cluster *c)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
failed:
|
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);
|
pr_err("%s(): Failed with error code:%d\n", __func__, ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_cluster_node(struct lpm_cluster *cluster)
|
void free_cluster_node(struct lpm_cluster *cluster)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
struct lpm_cluster *cl, *m;
|
struct lpm_cluster *cl, *m;
|
||||||
|
|
||||||
list_for_each_entry_safe(cl, m, &cluster->child, list) {
|
list_for_each_entry_safe(cl, m, &cluster->child, list) {
|
||||||
|
@ -988,22 +975,6 @@ void free_cluster_node(struct lpm_cluster *cluster)
|
||||||
free_cluster_node(cl);
|
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;
|
cluster->ndevices = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1121,9 +1092,7 @@ failed_parse_cluster:
|
||||||
list_del(&c->list);
|
list_del(&c->list);
|
||||||
free_cluster_node(c);
|
free_cluster_node(c);
|
||||||
failed_parse_params:
|
failed_parse_params:
|
||||||
c->parent = NULL;
|
|
||||||
pr_err("Failed parse params\n");
|
pr_err("Failed parse params\n");
|
||||||
kfree(c);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
struct lpm_cluster *lpm_of_parse_cluster(struct platform_device *pdev)
|
struct lpm_cluster *lpm_of_parse_cluster(struct platform_device *pdev)
|
||||||
|
|
Loading…
Reference in New Issue