genirq: Add mutex to irq desc to serialize request/free_irq()
authorThomas Gleixner <tglx@linutronix.de>
Thu, 29 Jun 2017 21:33:37 +0000 (23:33 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 4 Jul 2017 10:46:16 +0000 (12:46 +0200)
commit9114014cf4e6df0b22d764380ae1fc54f1a7a8b2
tree11be4a12a5d75cc271cdcaa26736e1855048acdd
parent3a90795e1e885167209056a1a90be965add30e25
genirq: Add mutex to irq desc to serialize request/free_irq()

The irq_request/release_resources() callbacks ar currently invoked under
desc->lock with interrupts disabled. This is a source of problems on RT and
conceptually not required.

Add a seperate mutex to struct irq_desc which allows to serialize
request/free_irq(), which can be used to move the resource functions out of
the desc->lock held region.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Julia Cartwright <julia@ni.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Brian Norris <briannorris@chromium.org>
Cc: Doug Anderson <dianders@chromium.org>
Cc: linux-rockchip@lists.infradead.org
Cc: John Keeping <john@metanate.com>
Cc: linux-gpio@vger.kernel.org
Link: http://lkml.kernel.org/r/20170629214344.039220922@linutronix.de
include/linux/irqdesc.h
kernel/irq/irqdesc.c
kernel/irq/manage.c