• Thomas Gleixner's avatar
    genirq: Mark polled irqs and defer the real handler · fe200ae4
    Thomas Gleixner authored
    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: default avatarThomas Gleixner <tglx@linutronix.de>
    fe200ae4
spurious.c 8.35 KB