]> git.baikalelectronics.ru Git - kernel.git/commit
genirq: Warn when IRQ_NOAUTOEN is used with shared interrupts
authorThomas Gleixner <tglx@linutronix.de>
Wed, 31 May 2017 09:58:33 +0000 (11:58 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 4 Jun 2017 12:38:41 +0000 (14:38 +0200)
commitb2fd022be80390ec09029edc9d4dbeaabdf7982e
tree4225f152323a63dc6cf7cfbc124a22a300599530
parentb89a9eab71c1d530e8a188f1679b3457e6463162
genirq: Warn when IRQ_NOAUTOEN is used with shared interrupts

Shared interrupts do not go well with disabling auto enable:

1) The sharing interrupt might request it while it's still disabled and
   then wait for interrupts forever.

2) The interrupt might have been requested by the driver sharing the line
   before IRQ_NOAUTOEN has been set. So the driver which expects that
   disabled state after calling request_irq() will not get what it wants.
   Even worse, when it calls enable_irq() later, it will trigger the
   unbalanced enable_irq() warning.

Reported-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: dianders@chromium.org
Cc: jeffy <jeffy.chen@rock-chips.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: tfiga@chromium.org
Link: http://lkml.kernel.org/r/20170531100212.210682135@linutronix.de
kernel/irq/chip.c
kernel/irq/manage.c