diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2022-05-09 17:04:08 +0300 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2022-09-19 16:08:38 +0300 |
commit | 6a164c646999847b843e651f71c53dfaceb2c2b4 (patch) | |
tree | f44a07a4b96c5b95cee110a90f1c87e3d166194f /include/linux/irqdesc.h | |
parent | 521a547ced6477c54b4b0cc206000406c221b4d6 (diff) | |
download | linux-6a164c646999847b843e651f71c53dfaceb2c2b4.tar.xz |
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
Diffstat (limited to 'include/linux/irqdesc.h')
-rw-r--r-- | include/linux/irqdesc.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h index 1cd4e36890fb..844a8e30e6de 100644 --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h @@ -169,6 +169,7 @@ int generic_handle_irq_safe(unsigned int irq); * conversion failed. */ int generic_handle_domain_irq(struct irq_domain *domain, unsigned int hwirq); +int generic_handle_domain_irq_safe(struct irq_domain *domain, unsigned int hwirq); int generic_handle_domain_nmi(struct irq_domain *domain, unsigned int hwirq); #endif |