OpenCloudOS-Kernel/kernel/irq
Thomas Gleixner 70433c0161 genirq: Use the correct variable for note_interrupt
note_interrupt wants to be called with the combined result of all
handlers called, not with the last one. If it's a shared interrupt
then the last handler might return IRQ_NONE often enough to trigger
the spurious dectector which turns off a perfectly fine working
interrupt line. Bug was introduced in commit 1277a532(genirq: Simplify
handle_irq_event()).

Yes, I really messed up there. First the variable ret should not have
been named differently to avoid similarity with retval. Second it
should have been declared in the do {} loop.

Rename it to res and move it into the do {} loop and vanish under a
huge brown paperbag.

Reported-bisected-tested-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2011-02-22 13:02:03 +01:00
..
Kconfig genirq: Add preflow handler support 2011-02-19 12:58:24 +01:00
Makefile genirq: Remove the now unused sparse irq leftovers 2010-10-12 16:53:44 +02:00
autoprobe.c genirq: Remove real old transition functions 2011-02-19 12:58:23 +01:00
chip.c genirq: Fix misplaced status update in irq_disable() 2011-02-21 21:19:59 +01:00
compat.h genirq: Move IRQ_AFFINITY_SET to core 2011-02-19 12:58:20 +01:00
debug.h genirq: Move debug code to separate header 2011-02-19 12:58:19 +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: Use the correct variable for note_interrupt 2011-02-22 13:02:03 +01:00
internals.h genirq: Implement irq_get/put_desc_[bus]locked/unlock() 2011-02-19 12:58:23 +01:00
irqdesc.c genirq: Use IRQ_BITMAP_BITS as search size in irq_alloc_descs() 2011-02-21 21:20:00 +01:00
manage.c genirq: Add missing break in __irq_set_trigger() 2011-02-21 21:20:00 +01:00
migration.c genirq: Implement irq_data based move_*_irq() versions 2011-02-19 12:58:25 +01:00
pm.c genirq: Move wakeup state to irq_data 2011-02-19 12:58:22 +01:00
proc.c genirq: Reuse existing can set affinty check 2011-02-19 12:58:20 +01:00
resend.c genirq: Mirror irq trigger type bits in irq_data.state 2011-02-19 12:58:20 +01:00
settings.h genirq: Remove desc->status when GENERIC_HARDIRQS_NO_COMPAT=y 2011-02-19 12:58:22 +01:00
spurious.c genirq: Wrap the remaning IRQ_* flags 2011-02-19 12:58:21 +01:00