Comment 29 for bug 947751

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

So bisect reports this is the offending commit:

aa0eb3474beae8f6d9dcc2311dc02bea50cfd7b7 is the first bad commit
commit aa0eb3474beae8f6d9dcc2311dc02bea50cfd7b7
Author: Thomas Gleixner <email address hidden>
Date: Tue Feb 7 17:58:03 2012 +0100

    genirq: Unmask oneshot irqs when thread was not woken

    commit ac5637611150281f398bb7a47e3fcb69a09e7803 upstream.

    When the primary handler of an interrupt which is marked IRQ_ONESHOT
    returns IRQ_HANDLED or IRQ_NONE, then the interrupt thread is not
    woken and the unmask logic of the interrupt line is never
    invoked. This keeps the interrupt masked forever.

    This was not noticed as most IRQ_ONESHOT users wake the thread
    unconditionally (usually because they cannot access the underlying
    device from hard interrupt context). Though this behaviour was nowhere
    documented and not necessarily intentional. Some drivers can avoid the
    thread wakeup in certain cases and run into the situation where the
    interrupt line s kept masked.

    Handle it gracefully.

    Reported-and-tested-by: Lothar Wassmann <email address hidden>
    Signed-off-by: Thomas Gleixner <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

:040000 040000 ab75402953eedef69bc60cade7653379c2f09c69 d5d5088d30573fff66356a2a87e6caafe625ae75 M kernel

I'll build a test kernel with this commit reverted and post it shortly.