original_kernel/kernel/irq
Sebastian Andrzej Siewior 6a164c6469 genirq: Provide generic_handle_domain_irq_safe().
commit 509853f9e1 ("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
2022-09-19 15:08:38 +02:00
..
Kconfig genirq: GENERIC_IRQ_EFFECTIVE_AFF_MASK depends on SMP 2022-07-07 09:38:04 +01:00
Makefile
affinity.c irqchip updates for 5.19: 2022-05-20 18:48:54 +02:00
autoprobe.c
chip.c Merge branch irq/plic-masking into irq/irqchip-next 2022-07-10 09:51:20 +01:00
cpuhotplug.c
debug.h
debugfs.c genirq: Return a const cpumask from irq_data_get_affinity_mask 2022-07-07 09:38:04 +01:00
devres.c
dummychip.c
generic-chip.c genirq/generic_chip: Export irq_unmap_generic_chip 2022-07-20 12:05:55 +01:00
handle.c
internals.h genirq: Synchronize interrupt thread startup 2022-05-05 11:54:05 +02:00
ipi.c genirq: Return a const cpumask from irq_data_get_affinity_mask 2022-07-07 09:38:04 +01:00
irq_sim.c genirq/irq_sim: Make the irq_work always run in hard irq context 2022-05-14 17:48:27 +02:00
irqdesc.c genirq: Provide generic_handle_domain_irq_safe(). 2022-09-19 15:08:38 +02:00
irqdomain.c irqdomain: Use hwirq_max instead of revmap_size for NOMAP domains 2022-07-19 14:51:56 +01:00
manage.c genirq: Drop redundant irq_init_effective_affinity 2022-07-07 09:38:04 +01:00
matrix.c genirq/matrix: Remove redundant assignment to variable 'end' 2022-04-25 15:02:57 +02:00
migration.c
msi.c genirq/msi: Shutdown managed interrupts with unsatifiable affinities 2022-04-10 21:06:30 +02:00
pm.c genirq/PM: Unexport {suspend,resume}_device_irqs() 2022-06-13 12:27:37 +02:00
proc.c
resend.c
settings.h
spurious.c
timings.c