]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
regcache: Factor out regcache_hw_exit() helper
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 3 Mar 2026 09:26:24 +0000 (10:26 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 3 Mar 2026 13:03:59 +0000 (13:03 +0000)
Factor out regcache_hw_exit() helper to make error and exit paths
clearer. This helps to avoid missing changes in case the code gets
shuffled in the future.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20260303092820.2818138-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/base/regmap/regcache.c

index 13c480b6e21d54fabd6fb3bcc77c825d6210627a..329cdee1ae1c403d72ba924617be158072c83923 100644 (file)
@@ -131,6 +131,13 @@ err_free:
        return ret;
 }
 
+static void regcache_hw_exit(struct regmap *map)
+{
+       kfree(map->reg_defaults);
+       if (map->cache_free)
+               kfree(map->reg_defaults_raw);
+}
+
 int regcache_init(struct regmap *map, const struct regmap_config *config)
 {
        int count = 0;
@@ -245,9 +252,7 @@ err_exit:
                map->unlock(map->lock_arg);
        }
 err_free:
-       kfree(map->reg_defaults);
-       if (map->cache_free)
-               kfree(map->reg_defaults_raw);
+       regcache_hw_exit(map);
 
        return ret;
 }
@@ -259,9 +264,7 @@ void regcache_exit(struct regmap *map)
 
        BUG_ON(!map->cache_ops);
 
-       kfree(map->reg_defaults);
-       if (map->cache_free)
-               kfree(map->reg_defaults_raw);
+       regcache_hw_exit(map);
 
        if (map->cache_ops->exit) {
                dev_dbg(map->dev, "Destroying %s cache\n",