On 2024-08-07 18:27:03 [+0200], Jerome Brunet wrote: > With PREEMPT_RT enabled a spinlock_t becomes a sleeping lock. > > This is usually not a problem with spinlocks used in IRQ context since > IRQ handlers get threaded. However, if IRQF_ONESHOT is set, the primary > handler won't be force-threaded and runs always in hardirq context. This is > a problem because spinlock_t requires a preemptible context on PREEMPT_RT. > > In this particular instance, regmap mmio uses spinlock_t to protect the > register access and IRQF_ONESHOT is set on the IRQ. In this case, it is > actually better to do everything in threaded handler and it solves the > problem with PREEMPT_RT. > > Reported-by: Arseniy Krasnov <avkrasnov@xxxxxxxxxxxxxxxxx> > Closes: https://lore.kernel.org/linux-amlogic/20240729131652.3012327-1-avkrasnov@xxxxxxxxxxxxxxxxx > Suggested-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > Fixes: b11d26660dff ("ASoC: meson: axg-fifo: use threaded irq to check periods") > Signed-off-by: Jerome Brunet <jbrunet@xxxxxxxxxxxx> Reviewed-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> Sebastian