From d0e7990cfdbdbee8bf969fa5b89ec6921c2ad43c Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Mon, 14 Nov 2011 10:40:16 +0100 Subject: [PATCH] --- yaml --- r: 280539 b: refs/heads/master c: 021cd616decb4e8a4b31f1f8c466a847e8c04e67 h: refs/heads/master i: 280537: 765bd492a52575fede3c2334debac2a4cc702d34 280535: fe23510f1fd0e6f020efc140516277b534b371fa v: v3 --- [refs] | 2 +- trunk/drivers/base/regmap/regcache.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index f5a85d1417ef..5b5cca3640a2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: abbb18fb4ad7472ee2e1351f0ca12bce64cac143 +refs/heads/master: 021cd616decb4e8a4b31f1f8c466a847e8c04e67 diff --git a/trunk/drivers/base/regmap/regcache.c b/trunk/drivers/base/regmap/regcache.c index 6ab9f0384d82..79446262812c 100644 --- a/trunk/drivers/base/regmap/regcache.c +++ b/trunk/drivers/base/regmap/regcache.c @@ -61,8 +61,10 @@ static int regcache_hw_init(struct regmap *map) map->reg_defaults = kmalloc(count * sizeof(struct reg_default), GFP_KERNEL); - if (!map->reg_defaults) - return -ENOMEM; + if (!map->reg_defaults) { + ret = -ENOMEM; + goto err_free; + } /* fill the reg_defaults */ map->num_reg_defaults = count; @@ -77,6 +79,12 @@ static int regcache_hw_init(struct regmap *map) } return 0; + +err_free: + if (map->cache_free) + kfree(map->reg_defaults_raw); + + return ret; } int regcache_init(struct regmap *map)