Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd061c78 authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Mark Brown
Browse files

regmap: Fix memory leak in regcache_init error path



Make sure all allocated memory gets freed again in case initializing the cache
failed.

Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Acked-by: default avatarDimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 021cd616
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -144,9 +144,18 @@ int regcache_init(struct regmap *map)
	if (map->cache_ops->init) {
		dev_dbg(map->dev, "Initializing %s cache\n",
			map->cache_ops->name);
		return map->cache_ops->init(map);
		ret = map->cache_ops->init(map);
		if (ret)
			goto err_free;
	}
	return 0;

err_free:
	kfree(map->reg_defaults);
	if (map->cache_free)
		kfree(map->reg_defaults_raw);

	return ret;
}

void regcache_exit(struct regmap *map)