summaryrefslogtreecommitdiff
path: root/kernel/range.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2012-04-19 08:35:17 (GMT)
committerThomas Gleixner <tglx@linutronix.de>2012-04-19 11:56:56 (GMT)
commit1c6c69525b40eb76de8adf039409722015927dc3 (patch)
tree29ba450b43c3025c28ca9f42a81e10a0e8d9460e /kernel/range.c
parentc0ecaa06d6d40cb02cd264ddb308e82f0a49ec91 (diff)
downloadlinux-fsl-qoriq-1c6c69525b40eb76de8adf039409722015927dc3.tar.xz
genirq: Reject bogus threaded irq requests
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: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/range.c')
0 files changed, 0 insertions, 0 deletions