Unverified Commit ee43f5bb authored by Guenter Roeck's avatar Guenter Roeck Committed by Mark Brown
Browse files

regmap: Reject fast_io regmap configurations with RBTREE and MAPLE caches



REGCACHE_RBTREE and REGCACHE_MAPLE dynamically allocate memory for regmap
operations. This is incompatible with spinlock based locking which is used
for fast_io operations. Reject affected configurations.

Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20230720032848.1306349-2-linux@roeck-us.net


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 99aae705
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -723,6 +723,15 @@ struct regmap *__regmap_init(struct device *dev,
	} else {
		if ((bus && bus->fast_io) ||
		    config->fast_io) {
			/*
			 * fast_io is incompatible with REGCACHE_RBTREE and REGCACHE_MAPLE
			 * since both need to dynamically allocate memory.
			 */
			if (config->cache_type == REGCACHE_RBTREE ||
			    config->cache_type == REGCACHE_MAPLE) {
				ret = -EINVAL;
				goto err_name;
			}
			if (config->use_raw_spinlock) {
				raw_spin_lock_init(&map->raw_spinlock);
				map->lock = regmap_lock_raw_spinlock;