regmap: Also protect hwspinlock in error handling path

The previous patch to allow the hwspinlock code to be disabled missed
handling the free in the error path, do so using the better IS_ENABLED()
pattern as suggested by Baolin. While we're at it also check that we have
a hardware spinlock before freeing it - the core code reports an error
when freeing an invalid lock.

Suggested-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Mark Brown 2017-11-03 19:50:20 +00:00
parent f25637a6b8
commit 267f3e4f18
No known key found for this signature in database
GPG key ID: 24D68B725D5487D0

View file

@ -1116,7 +1116,8 @@ struct regmap *__regmap_init(struct device *dev,
regmap_range_exit(map);
kfree(map->work_buf);
err_hwlock:
hwspin_lock_free(map->hwlock);
if (IS_ENABLED(REGMAP_HWSPINLOCK) && map->hwlock)
hwspin_lock_free(map->hwlock);
err_map:
kfree(map);
err: