linux/kernel/irq
Sebastian Andrzej Siewior 21673fcb25 genirq/irq_sim: Make the irq_work always run in hard irq context
The IRQ simulator uses irq_work to trigger an interrupt. Without the
IRQ_WORK_HARD_IRQ flag the irq_work will be performed in thread context
on PREEMPT_RT. This causes locking errors later in handle_simple_irq()
which expects to be invoked with disabled interrupts.

Triggering individual interrupts in hardirq context should not lead to
unexpected high latencies since this is also what the hardware
controller does. Also it is used as a simulator so...

Use IRQ_WORK_INIT_HARD() to carry out the irq_work in hardirq context on
PREEMPT_RT.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/YnuZBoEVMGwKkLm+@linutronix.de
2022-05-14 17:48:27 +02:00
..
affinity.c genirq/affinity: Replace cpumask_weight() with cpumask_empty() where appropriate 2022-04-10 22:20:28 +02:00
autoprobe.c
chip.c genirq: Use pm_runtime_resume_and_get() instead of pm_runtime_get_sync() 2022-05-02 14:08:08 +02:00
cpuhotplug.c sched/isolation: Use single feature type while referring to housekeeping cpumask 2022-02-16 15:57:55 +01:00
debug.h
debugfs.c genirq/debugfs: Use irq_print_chip() when provided by irqchip 2022-02-15 11:22:34 +00:00
devres.c
dummychip.c irq: Fix typos in comments 2021-03-22 04:23:14 +01:00
generic-chip.c genirq/generic_chip: Constify irq_generic_chip_ops 2021-12-01 00:15:07 +01:00
handle.c irq: remove unused flags argument from __handle_irq_event_percpu() 2022-01-07 00:25:25 +01:00
internals.h irq: remove unused flags argument from __handle_irq_event_percpu() 2022-01-07 00:25:25 +01:00
ipi.c genirq: Fix kernel-doc warnings in pm.c, msi.c and ipi.c 2021-08-11 14:33:35 +02: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 Provide a tag for maintainers to pull the generic_handle_irq_safe() API. 2022-02-21 11:33:57 +01:00
irqdomain.c irqdomain: Let irq_domain_set_{info,hwirq_and_chip} take a const irq_chip 2022-02-15 11:10:21 +00:00
Kconfig Merge branch irq/irq_cpu_offline into irq/irqchip-next 2021-10-28 13:34:57 +01:00
Makefile
manage.c genirq: Take the proposed affinity at face value if force==true 2022-04-14 16:11:25 +02:00
matrix.c genirq/matrix: Remove redundant assignment to variable 'end' 2022-04-25 15:02:57 +02:00
migration.c genirq: Fix typos and misspellings in comments 2021-03-16 15:08:29 +01:00
msi.c genirq/msi: Shutdown managed interrupts with unsatifiable affinities 2022-04-10 21:06:30 +02:00
pm.c genirq: Fix kernel-doc warnings in pm.c, msi.c and ipi.c 2021-08-11 14:33:35 +02:00
proc.c proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
resend.c genirq: Fix typos and misspellings in comments 2021-03-16 15:08:29 +01:00
settings.h genirq: Add a IRQF_NO_DEBUG flag 2021-05-17 20:01:35 +02:00
spurious.c genirq: Disable irqfixup/poll on PREEMPT_RT. 2021-09-19 23:01:15 +02:00
timings.c Updates to the interrupt core and driver subsystems: 2021-08-30 14:38:37 -07:00