regmap: Also protect hwspinlock in error handling path
authorMark Brown <broonie@kernel.org>
Fri, 3 Nov 2017 19:50:20 +0000 (19:50 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 3 Nov 2017 19:53:42 +0000 (19:53 +0000)
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>
drivers/base/regmap/regmap.c

index ff6ef6a..5ff549f 100644 (file)
@@ -1116,7 +1116,8 @@ err_range:
        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: