Revert "genirq: Use irqd_get_trigger_type to compare the trigger type for shared...
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 30 Mar 2018 08:56:51 +0000 (10:56 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 8 Apr 2018 09:49:42 +0000 (11:49 +0200)
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

index 5f23a04789db4e42a2dc40d9b873899f12606e98..e7ef539c56d970fad798ef3b9cf5d9802e8b1b4f 100644 (file)
@@ -1058,10 +1058,8 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
                 * 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;