switch-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
chip.c genirq: Mark polled irqs and defer the real handler 2011-02-19 12:58:09 +01:00
devres.c
dummychip.c
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
Makefile
manage.c genirq: Remove redundant thread affinity setting 2011-02-19 12:58:08 +01:00
migration.c
pm.c
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