On Wed, Feb 10, 2016 at 4:09 PM, Marc Zyngier <marc.zyngier@xxxxxxx> wrote: > On 29/01/16 04:28, Quan Nguyen wrote: >> +static void xgene_gpio_sb_domain_deactivate(struct irq_domain *d, >> + struct irq_data *irq_data) >> +{ >> + struct xgene_gpio_sb *priv = d->host_data; >> + u32 gpio = HWIRQ_TO_GPIO(priv, irq_data->hwirq); >> + >> + gpiochip_unlock_as_irq(&priv->gc, gpio); > > Is it right to do the unlock both in irq_shutdown and domain_deactivate? > This seems a bit odd to me to have such an inbalance. My hunch is that > you should either implement irq_startup, do the locking there and drop > the unlock drop deactivate, or kill irq_shutdown. > > Linus, what do you think? Those functions should be called in .irq_alloc/release_resources(), that is why Gleixner added those callbacks in the first place. Yours, Linus Walleij -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html