summaryrefslogtreecommitdiff
path: root/drivers/base/regmap/regmap.c
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2011-11-10 18:15:15 +0100
committerLokesh Pathak <lpathak@nvidia.com>2012-03-05 07:49:27 -0800
commit2769ec26e0419872901e5784bc0a2e1890661714 (patch)
tree99462646b101435a29babcb21dccdd6f4bfc241b /drivers/base/regmap/regmap.c
parentbe467876d52de68446f67d734804a16ffd358d34 (diff)
regmap: Fix memory leak in regmap_init error path
If regcache initialization fails regmap_init will currently exit without freeing work_buf. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> (cherry picked from commit 58072cbfc522c2520e34333a53c8f17bb1adb1a0) Change-Id: I55877ab14da86fbc479a0418c7f5371486574525 Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-on: http://git-master/r/87553
Diffstat (limited to 'drivers/base/regmap/regmap.c')
-rw-r--r--drivers/base/regmap/regmap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
index e9eda8c3e017..7f0930d0fa5c 100644
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -229,12 +229,14 @@ struct regmap *regmap_init(struct device *dev,
ret = regcache_init(map);
if (ret < 0)
- goto err_map;
+ goto err_free_workbuf;
regmap_debugfs_init(map);
return map;
+err_free_workbuf:
+ kfree(map->work_buf);
err_map:
kfree(map);
err: