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

Commit 167f7066 authored by Xiubo Li's avatar Xiubo Li Committed by Mark Brown
Browse files

regmap: cache: Move the num_reg_defaults check as early as possible



If the register defaults are provided by the driver without the
number by mistake, it should just return an error with one promotion.

This should be as early as possible, then there is no need to verify
the register defaults' stride and the other code followed.

Signed-off-by: default avatarXiubo Li <lixiubo@cmss.chinamobile.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 8cfe2fd3
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -109,6 +109,12 @@ int regcache_init(struct regmap *map, const struct regmap_config *config)
		return 0;
	}

	if (config->reg_defaults && !config->num_reg_defaults) {
		dev_err(map->dev,
			 "Register defaults are set without the number!\n");
		return -EINVAL;
	}

	for (i = 0; i < config->num_reg_defaults; i++)
		if (config->reg_defaults[i].reg % map->reg_stride)
			return -EINVAL;
@@ -142,8 +148,6 @@ int regcache_init(struct regmap *map, const struct regmap_config *config)
	 * a copy of it.
	 */
	if (config->reg_defaults) {
		if (!map->num_reg_defaults)
			return -EINVAL;
		tmp_buf = kmemdup(config->reg_defaults, map->num_reg_defaults *
				  sizeof(struct reg_default), GFP_KERNEL);
		if (!tmp_buf)