diff options
author | Mark Brown <broonie@kernel.org> | 2017-12-12 19:56:43 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2017-12-13 19:22:31 +0300 |
commit | 72465736adf2aade263a9475a1d42007fd49e703 (patch) | |
tree | ddc19ef33b47c55b130e78cca79b3f6b064cd2c4 /drivers/base/regmap/regmap.c | |
parent | 81e30b189f593afbf10a7bf47f18f030f8aea3b5 (diff) | |
download | linux-72465736adf2aade263a9475a1d42007fd49e703.tar.xz |
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.c')
-rw-r--r-- | drivers/base/regmap/regmap.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index 54b1aa371c61..df9ca36753ff 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -676,6 +676,7 @@ struct regmap *__regmap_init(struct device *dev, if (config->disable_locking) { map->lock = map->unlock = regmap_lock_unlock_none; + regmap_debugfs_disable(map); } else if (config->lock && config->unlock) { map->lock = config->lock; map->unlock = config->unlock; |