On Thu, 24 Mar 2016, Lee Jones wrote: > FAO Thomas > > > Lockdep explicitly sets all the irq_desc locks as a single lock-class, > > which causes a "possible recursive locking detected" warning when we > > attempt to propagate the IRQ wake to our parent IRQ in > > arizona_irq_set_wake. Although this appears to be a false positive > > because an IRQ is unlikely to be its own parent, this was clearly > > intentionally prohibited. > > > > To avoid this lockdep warning, take a cue from the regmap-irq system, > > and add bus lock callbacks on the IRQ chip and propagate the wake in > > the bus unlock which will happen after the desc lock has been released > > and thus avoid the issue. > > This looks like a hack to me. I'd like Thomas (Cc'ed) to look it over.
irq_set_lockdep_class() exists for a reason. See kernel/irq/generic-chip.c or drivers/gpio/gpiolib.c for examples.

