genirq: Fix race in register_irq_proc()
authorBen Hutchings <ben@decadent.org.uk>
Sat, 26 Sep 2015 11:23:56 +0000 (12:23 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 1 Oct 2015 10:18:13 +0000 (12:18 +0200)
commit95c2b17534654829db428f11bcf4297c059a2a7e
treeaea31e60108daabb0efa0342ba302109d22ca70e
parentd32dc9aa10c739363c775baf4499416b2e0dc11f
genirq: Fix race in register_irq_proc()

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>
Cc: stable@vger.kernel.org
kernel/irq/proc.c