diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2021-08-25 23:50:40 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2021-08-26 12:07:32 +0100 |
commit | 67021f25d95292d285dd213c58401642b98eaf24 (patch) | |
tree | 6107e922924efea2a551301b1d4fe16d8c0aa634 /net/dsa/master.c | |
parent | 6efb943b8616ec53a5e444193dccf1af9ad627b5 (diff) | |
download | linux-67021f25d95292d285dd213c58401642b98eaf24.tar.gz linux-67021f25d95292d285dd213c58401642b98eaf24.tar.bz2 linux-67021f25d95292d285dd213c58401642b98eaf24.zip |
regmap: teach regmap to use raw spinlocks if requested in the config
Some drivers might access regmap in a context where a raw spinlock is
held. An example is drivers/irqchip/irq-ls-extirq.c, which calls
regmap_update_bits() from struct irq_chip :: irq_set_type, which is a
method called by __irq_set_trigger() under the desc->lock raw spin lock.
Since desc->lock is a raw spin lock and the regmap internal lock for
mmio is a plain spinlock (which can become sleepable on RT), this is an
invalid locking scheme and we get a splat stating that this is a
"[ BUG: Invalid wait context ]".
It seems reasonable for regmap to have an option use a raw spinlock too,
so add that in the config such that drivers can request it.
Suggested-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://lore.kernel.org/r/20210825205041.927788-2-vladimir.oltean@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'net/dsa/master.c')
0 files changed, 0 insertions, 0 deletions