3.18-stable review patch. If anyone has any objections, please let me know.
------------------
This reverts commit 093c265afffb0a91a7611c3bb74d0883731a807b which is commit 382bd4de61827dbaaf5fb4fb7b1f4be4a86505e7 upstream.
It causes too many problems with the stable tree, and would require too many other things to be backported, so just revert it.
Reported-by: Guenter Roeck linux@roeck-us.net Cc: Thomas Gleixner tglx@linutronix.de Cc: Hans de Goede hdegoede@redhat.com Cc: Marc Zyngier marc.zyngier@arm.com Cc: Thomas Gleixner tglx@linutronix.de Cc: Sasha Levin alexander.levin@microsoft.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- kernel/irq/manage.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
--- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -1058,10 +1058,8 @@ __setup_irq(unsigned int irq, struct irq * set the trigger type must match. Also all must * agree on ONESHOT. */ - unsigned int oldtype = irqd_get_trigger_type(&desc->irq_data); - if (!((old->flags & new->flags) & IRQF_SHARED) || - (oldtype != (new->flags & IRQF_TRIGGER_MASK)) || + ((old->flags ^ new->flags) & IRQF_TRIGGER_MASK) || ((old->flags ^ new->flags) & IRQF_ONESHOT)) goto mismatch;