]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "ACPI: Make ACPI interrupt threaded"
authorThomas Gleixner <tglx@linutronix.de>
Wed, 18 Apr 2012 10:29:32 +0000 (12:29 +0200)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 18 Apr 2012 17:16:27 +0000 (10:16 -0700)
commit74353b2ca0171a41a6b51863febcf4c5d95eff58
tree5b88deede3546856c10fd450bd1020247f416888
parentcc902b786a0b772a8fcd0b63b9799194e03215fd
Revert "ACPI: Make ACPI interrupt threaded"

This reverts commit 79f3aaa41a8ce78237ec2475a8ccdd258c9ef8c5.

Paul bisected this regression.

The conversion was done blindly and is wrong, as it does not provide a
primary handler to disable the level type irq on the device level.
Neither does it set the IRQF_ONESHOT flag which handles that at the irq
line level.  This can't be done as the interrupt might be shared, though
we might extend the core to force it.

So an interrupt on this line will wake up the thread, but immediately
unmask the irq after that.  Due to the interrupt being level type the
hardware interrupt is raised over and over and prevents the irq thread
from handling it.  Fail.

request_irq() unfortunately does not refuse such a request and the patch
was obviously never tested with real interrupts.

Bisected-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/acpi/osl.c