mvebu_gpio_write_level_mask() is called with a raw spinlock taken but the underlying regmap uses a standard spinlock which can sleep on RT_PREEMPT kernels. Add the .use_raw_spinlock attribute to the appropriate regmap config. Cc: stable@vger.kernel.org Fixes: 48f32a835373 ("gpio: mvebu: switch pwm duration registers to regmap") Closes: https://sashiko.dev/#/bug/linux-6bee0c4f-384c-494c-868e-07c420195d13 Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mvebu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c index 267e6d5bacd0d1c9de0ebb7e21233bc9e2cd3bad..02d9ae5869d75ccc9ac78c41650b9f21b18ffdaa 100644 --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c @@ -603,6 +603,7 @@ static const struct regmap_config mvebu_gpio_regmap_config = { .reg_bits = 32, .reg_stride = 4, .val_bits = 32, + .use_raw_spinlock = true, }; static const struct regmap_config mvebu_gpio_percpu_regmap_config = { --- base-commit: 8b7179210b22f8e48a82c5ceacb9d56a9c4cfec4 change-id: 20261105-gpio-mvebu-sleeping-while-atomic-3b3fed029f7b Best regards, -- Bartosz Golaszewski