• Thomas Gleixner's avatar
    genirq: Reject bogus threaded irq requests · 1c6c6952
    Thomas Gleixner authored
    Requesting a threaded interrupt without a primary handler and without
    IRQF_ONESHOT set is dangerous.
    
    The core will use the default primary handler for it, which merily
    wakes the thread. For a level type interrupt this results in an
    interrupt storm, because the interrupt line is reenabled after the
    primary handler runs. The device has still the line asserted, which
    brings us back into the primary handler.
    
    While this works for edge type interrupts, we play it safe and reject
    unconditionally because we can't say for sure which type this
    interrupt really has. The type flags are unreliable as the underlying
    chip implementation can override them. And we cannot assume that
    developers using that interface know what they are doing.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    1c6c6952
manage.c 42.6 KB