summaryrefslogtreecommitdiffstats
path: root/drivers/base/regmap/regmap-debugfs.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2017-12-12 17:56:43 +0100
committerMark Brown <broonie@kernel.org>2017-12-13 17:22:31 +0100
commit72465736adf2aade263a9475a1d42007fd49e703 (patch)
treeddc19ef33b47c55b130e78cca79b3f6b064cd2c4 /drivers/base/regmap/regmap-debugfs.c
parentregmap: rename regmap_lock_unlock_empty() to regmap_lock_unlock_none() (diff)
downloadlinux-72465736adf2aade263a9475a1d42007fd49e703.tar.xz
linux-72465736adf2aade263a9475a1d42007fd49e703.zip
regmap: Disable debugfs when locking is disabled
The recently added support for disabling the regmap internal locking left debugfs enabled for devices with the locking disabled. This is a problem since debugfs allows userspace to do things like initiate reads from the hardware which will use the scratch buffers protected by the regmap locking so could cause data corruption. For safety address this by just disabling debugfs for these devices. That is overly conservative since some of the debugfs files just read internal data structures but it's much simpler to implmement and less likely to lead to problems with tooling that works with debugfs. Reported-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/base/regmap/regmap-debugfs.c')
-rw-r--r--drivers/base/regmap/regmap-debugfs.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c
index 36ce3511c733..c8ecefd75d6f 100644
--- a/drivers/base/regmap/regmap-debugfs.c
+++ b/drivers/base/regmap/regmap-debugfs.c
@@ -529,6 +529,9 @@ void regmap_debugfs_init(struct regmap *map, const char *name)
struct regmap_range_node *range_node;
const char *devname = "dummy";
+ if (map->debugfs_disable)
+ return;
+
/* If we don't have the debugfs root yet, postpone init */
if (!regmap_debugfs_root) {
struct regmap_debugfs_node *node;