genirq: Provide generic_handle_domain_irq_safe().
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Mon, 9 May 2022 14:04:08 +0000 (16:04 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 19 Sep 2022 13:08:38 +0000 (15:08 +0200)
commit6a164c646999847b843e651f71c53dfaceb2c2b4
treef44a07a4b96c5b95cee110a90f1c87e3d166194f
parent521a547ced6477c54b4b0cc206000406c221b4d6
genirq: Provide generic_handle_domain_irq_safe().

commit 509853f9e1e7b ("genirq: Provide generic_handle_irq_safe()")
addressed the problem of demultiplexing interrupt handlers which are force
threaded on PREEMPT_RT enabled kernels which means that the demultiplexed
handler is invoked with interrupts enabled which triggers a lockdep
warning due to a non-irq safe lock acquisition.

The same problem exists for the irq domain based interrupt handling via
generic_handle_domain_irq() which has been reported against the AMD
pin-ctrl driver.

Provide generic_handle_domain_irq_safe() which can used from any context.

[ tglx: Split the usage sites out and massaged changelog ]

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/YnkfWFzvusFFktSt@linutronix.de
Link: https://bugzilla.kernel.org/show_bug.cgi?id=215954
include/linux/irqdesc.h
kernel/irq/irqdesc.c