Jiri Slaby c5b460
From: Alexander Stein <alexander.stein@ew.tq-group.com>
Jiri Slaby c5b460
Date: Mon, 13 Mar 2023 08:18:11 +0100
Jiri Slaby c5b460
Subject: [PATCH] regmap: cache: Return error in cache sync operations for
Jiri Slaby c5b460
 REGCACHE_NONE
Jiri Slaby c5b460
References: bsc#1012628
Jiri Slaby c5b460
Patch-mainline: 6.3.4
Jiri Slaby c5b460
Git-commit: fd883d79e4dcd2417c2b80756f22a2ff03b0f6e0
Jiri Slaby c5b460
Jiri Slaby c5b460
[ Upstream commit fd883d79e4dcd2417c2b80756f22a2ff03b0f6e0 ]
Jiri Slaby c5b460
Jiri Slaby c5b460
There is no sense in doing a cache sync on REGCACHE_NONE regmaps.
Jiri Slaby c5b460
Instead of panicking the kernel due to missing cache_ops, return an error
Jiri Slaby c5b460
to client driver.
Jiri Slaby c5b460
Jiri Slaby c5b460
Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Jiri Slaby c5b460
Link: https://lore.kernel.org/r/20230313071812.13577-1-alexander.stein@ew.tq-group.com
Jiri Slaby c5b460
Signed-off-by: Mark Brown <broonie@kernel.org>
Jiri Slaby c5b460
Signed-off-by: Sasha Levin <sashal@kernel.org>
Jiri Slaby c5b460
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Jiri Slaby c5b460
---
Jiri Slaby c5b460
 drivers/base/regmap/regcache.c | 6 ++++++
Jiri Slaby c5b460
 1 file changed, 6 insertions(+)
Jiri Slaby c5b460
Jiri Slaby c5b460
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
Jiri Slaby c5b460
index 362e043e..8031007b 100644
Jiri Slaby c5b460
--- a/drivers/base/regmap/regcache.c
Jiri Slaby c5b460
+++ b/drivers/base/regmap/regcache.c
Jiri Slaby c5b460
@@ -349,6 +349,9 @@ int regcache_sync(struct regmap *map)
Jiri Slaby c5b460
 	const char *name;
Jiri Slaby c5b460
 	bool bypass;
Jiri Slaby c5b460
 
Jiri Slaby c5b460
+	if (WARN_ON(map->cache_type == REGCACHE_NONE))
Jiri Slaby c5b460
+		return -EINVAL;
Jiri Slaby c5b460
+
Jiri Slaby c5b460
 	BUG_ON(!map->cache_ops);
Jiri Slaby c5b460
 
Jiri Slaby c5b460
 	map->lock(map->lock_arg);
Jiri Slaby c5b460
@@ -418,6 +421,9 @@ int regcache_sync_region(struct regmap *map, unsigned int min,
Jiri Slaby c5b460
 	const char *name;
Jiri Slaby c5b460
 	bool bypass;
Jiri Slaby c5b460
 
Jiri Slaby c5b460
+	if (WARN_ON(map->cache_type == REGCACHE_NONE))
Jiri Slaby c5b460
+		return -EINVAL;
Jiri Slaby c5b460
+
Jiri Slaby c5b460
 	BUG_ON(!map->cache_ops);
Jiri Slaby c5b460
 
Jiri Slaby c5b460
 	map->lock(map->lock_arg);
Jiri Slaby c5b460
-- 
Jiri Slaby c5b460
2.35.3
Jiri Slaby c5b460