]> git.baikalelectronics.ru Git - kernel.git/commit
genirq: Provide basic NMI management for interrupt lines
authorJulien Thierry <julien.thierry@arm.com>
Thu, 31 Jan 2019 14:53:58 +0000 (14:53 +0000)
committerMarc Zyngier <marc.zyngier@arm.com>
Tue, 5 Feb 2019 14:36:57 +0000 (14:36 +0000)
commit708fc951a8ee7ba03881afbbe5382ac545aaf32c
tree11bad762c8aae79bfa042e47d263362f8d288b20
parent607d144b83b16847bc18fb058d4d51857c4ff9c6
genirq: Provide basic NMI management for interrupt lines

Add functionality to allocate interrupt lines that will deliver IRQs
as Non-Maskable Interrupts. These allocations are only successful if
the irqchip provides the necessary support and allows NMI delivery for the
interrupt line.

Interrupt lines allocated for NMI delivery must be enabled/disabled through
enable_nmi/disable_nmi_nosync to keep their state consistent.

To treat a PERCPU IRQ as NMI, the interrupt must not be shared nor threaded,
the irqchip directly managing the IRQ must be the root irqchip and the
irqchip cannot be behind a slow bus.

Signed-off-by: Julien Thierry <julien.thierry@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
include/linux/interrupt.h
include/linux/irq.h
kernel/irq/debugfs.c
kernel/irq/internals.h
kernel/irq/manage.c