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

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.netSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 99aae705
...@@ -723,6 +723,15 @@ struct regmap *__regmap_init(struct device *dev, ...@@ -723,6 +723,15 @@ struct regmap *__regmap_init(struct device *dev,
} else { } else {
if ((bus && bus->fast_io) || if ((bus && bus->fast_io) ||
config->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) { if (config->use_raw_spinlock) {
raw_spin_lock_init(&map->raw_spinlock); raw_spin_lock_init(&map->raw_spinlock);
map->lock = regmap_lock_raw_spinlock; map->lock = regmap_lock_raw_spinlock;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment