linux/kernel/irq
Thomas Gleixner fe200ae48e genirq: Mark polled irqs and defer the real handler
With the chip.end() function gone we might run into a situation where
a poll call runs and the real interrupt comes in, sees IRQ_INPROGRESS
and disables the line. That might be a perfect working one, which will
then be masked forever.

So mark them polled while the poll runs. When the real handler sees
IRQ_INPROGRESS it checks the poll flag and waits for the polling to
complete. Add the necessary amount of sanity checks to it to avoid
deadlocks.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2011-02-19 12:58:09 +01:00
..
autoprobe.c genirq: Provide compat handling for chip->set_type() 2010-10-04 12:43:47 +02:00
chip.c genirq: Mark polled irqs and defer the real handler 2011-02-19 12:58:09 +01:00
devres.c devres/irq: Fix devm_irq_match comment 2010-02-11 16:01:02 +01:00
dummychip.c genirq: Fix CONFIG_GENIRQ_NO_DEPRECATED=y build 2010-10-12 21:59:55 +02:00
handle.c genirq: Warn when handler enables interrupts 2011-02-19 12:58:08 +01:00
internals.h genirq: Mark polled irqs and defer the real handler 2011-02-19 12:58:09 +01:00
irqdesc.c genirq: Make nr_irqs runtime expandable 2011-02-19 12:58:06 +01:00
Kconfig genirq: Remove __do_IRQ 2011-01-21 11:55:31 +01:00
Makefile genirq: Remove the now unused sparse irq leftovers 2010-10-12 16:53:44 +02:00
manage.c genirq: Remove redundant thread affinity setting 2011-02-19 12:58:08 +01:00
migration.c genirq: Prevent irq storm on migration 2011-02-02 22:15:08 +01:00
pm.c genirq: Add IRQF_FORCE_RESUME 2011-02-08 16:36:47 +01:00
proc.c genirq: Do not copy affinity before set 2011-02-19 12:58:07 +01:00
resend.c genirq: Prevent access beyond allocated_irqs bitmap 2011-02-19 12:10:51 +01:00
spurious.c genirq: Mark polled irqs and defer the real handler 2011-02-19 12:58:09 +01:00