genirq: Fix race in register_irq_proc()
authorBen Hutchings <ben@decadent.org.uk>
Sat, 26 Sep 2015 11:23:56 +0000 (12:23 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Oct 2015 21:39:22 +0000 (14:39 -0700)
commit2bc9689906c7cae36e5fed5c6c796aefe850c382
tree94a65d6c72fc1a345b1d0ba5196c824a20eec6a1
parent8ea4b34355189e1f1eacaf2d825f2dce776b3b9c
genirq: Fix race in register_irq_proc()

commit 95c2b17534654829db428f11bcf4297c059a2a7e upstream.

Per-IRQ directories in procfs are created only when a handler is first
added to the irqdesc, not when the irqdesc is created.  In the case of
a shared IRQ, multiple tasks can race to create a directory.  This
race condition seems to have been present forever, but is easier to
hit with async probing.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Link: http://lkml.kernel.org/r/1443266636.2004.2.camel@decadent.org.uk
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/irq/proc.c