Marc, On Fri, 28 Jun 2019, Marc Zyngier wrote: > > --- a/kernel/irq/autoprobe.c > > +++ b/kernel/irq/autoprobe.c > > @@ -1699,6 +1700,7 @@ static struct irqaction *__free_irq(stru > > /* If this was the last handler, shut down the IRQ line: */ > > if (!desc->action) { > > irq_settings_clr_disable_unlazy(desc); > > + /* Only shutdown. Deactivate after synchronize_irq() */ > > synchronize_hardirq() Correct. > > > > irq_release_resources(desc); > The patch makes complete sense, so this comment is only a nit, feel free > to ignore me: I find it a bit odd that irq_shutdown() doesn't do the > full thing anymore, given that it is the "canonical" function, and that > __free_irq is the only one that has special needs. Suggestion below. We have pretty much the same thing with startup, so I made it symmetric. > Irrespective of which version you prefer: > > Reviewed-by: Marc Zyngier <marc.zyngier@xxxxxxx> Thanks for looking into this! tglx