2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-11-20 16:46:23 +08:00
linux-next/kernel/irq
Sebastian Andrzej Siewior b6873807a7 irq: Track the owner of irq descriptor
Interrupt descriptors can be allocated from modules. The interrupts
are used by other modules, but we have no refcount on the module which
provides the interrupts and there is no way to establish one on the
device level as the interrupt using module is agnostic to the fact
that the interrupt is provided by a module rather than by some builtin
interrupt controller.

To prevent removal of the interrupt providing module, we can track the
owner of the interrupt descriptor, which also provides the relevant
irq chip functions in the irq descriptor.

request/setup_irq() can now acquire a refcount on the owner module to
prevent unloading. free_irq() drops the refcount.

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Link: http://lkml.kernel.org/r/20110711101731.GA13804@Chamillionaire.breakpoint.cc
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2011-07-28 11:23:21 +02:00
..
autoprobe.c genirq: Remove compat code 2011-03-29 14:48:19 +02:00
chip.c irq: Export functions to allow modular irq drivers 2011-05-18 14:59:08 +02:00
debug.h genirq: Support per-IRQ thread disabling. 2011-04-23 15:56:24 +02:00
devres.c devres/irq: Fix devm_irq_match comment 2010-02-11 16:01:02 +01:00
dummychip.c genirq: Remove compat code 2011-03-29 14:48:19 +02:00
generic-chip.c genirq: Fix wrong bit operation 2011-07-26 16:24:02 +02:00
handle.c irq: Handle spurios irq detection for threaded irqs 2011-06-03 14:53:15 +02:00
internals.h genirq: Remove compat code 2011-03-29 14:48:19 +02:00
irqdesc.c irq: Track the owner of irq descriptor 2011-07-28 11:23:21 +02:00
Kconfig genirq: Make generic irq chip depend on CONFIG_GENERIC_IRQ_CHIP 2011-05-02 18:16:22 +02:00
Makefile genirq: Make generic irq chip depend on CONFIG_GENERIC_IRQ_CHIP 2011-05-02 18:16:22 +02:00
manage.c irq: Track the owner of irq descriptor 2011-07-28 11:23:21 +02:00
migration.c Fix common misspellings 2011-03-31 11:26:23 -03:00
pm.c genirq: Add chip flag to force mask on suspend 2011-03-12 11:12:58 +01:00
proc.c irq: Remove smp_affinity_list when unregister irq proc 2011-05-26 13:15:28 +02:00
resend.c genirq: Remove compat code 2011-03-29 14:48:19 +02:00
settings.h genirq: Support per-IRQ thread disabling. 2011-04-23 15:56:24 +02:00
spurious.c irq: Handle spurios irq detection for threaded irqs 2011-06-03 14:53:15 +02:00