genirq: Use the correct variable for note_interrupt
authorThomas Gleixner <tglx@linutronix.de>
Tue, 22 Feb 2011 11:50:12 +0000 (12:50 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 22 Feb 2011 12:02:03 +0000 (13:02 +0100)
commit70433c01613c2a44756c7b25f7bdd6c1c77b119f
tree27fb95b4ccaa498a7bbae135835b8a0472147d1b
parent8fff39e06987492da3d4a0b9ec7cdbd245b6762b
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>
kernel/irq/handle.c