The CPU trigger is invoked on ARM from CPU-idle. That trigger later invokes led_trigger_event() which acquires a read lock in an IRQ-off section. The problematic part on PREEMPT_RT is that this lock is turned into a sleeping lock and must not be acquired with disabled interrupts. The problem continues as that the LED driver underneath must not acquire any sleeping locks itself. Disable the CPU trigger on PREEMPT_RT. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> --- drivers/leds/trigger/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/leds/trigger/Kconfig b/drivers/leds/trigger/Kconfig index 1f1d572880859..dc6816d36d069 100644 --- a/drivers/leds/trigger/Kconfig +++ b/drivers/leds/trigger/Kconfig @@ -64,6 +64,7 @@ config LEDS_TRIGGER_BACKLIGHT config LEDS_TRIGGER_CPU bool "LED CPU Trigger" + depends on !PREEMPT_RT help This allows LEDs to be controlled by active CPUs. This shows the active CPUs across an array of LEDs so you can see which -- 2.33.0