On Mon, Dec 7, 2020 at 2:10 PM luojiaxing <luojiaxing@xxxxxxxxxx> wrote: > > > On 2020/12/7 2:50, Marc Zyngier wrote: > > On 2020-12-06 15:02, Linus Walleij wrote: > >> On Sat, Dec 5, 2020 at 11:15 PM Serge Semin <fancer.lancer@xxxxxxxxx> > >> wrote: > >> > >>> Hmm, that sounds like a problem, but the explanation is a bit unclear > >>> to me. AFAICS you are saying that the only callbacks which are > >>> called during the IRQ request/release are the irq_enable(), right? If > >>> so then the only reason why we haven't got a problem reported due to > >>> that so far is that the IRQs actually unmasked by default. > >> > >> What we usually do in cases like that (and I have discussed this > >> with tglx in the past I think) is to simply mask off all IRQs in > >> probe(). > >> Then they will be unmasked when requested by drivers. > >> > >> See e.g. gpio-pl061 that has this line in probe(): > >> writeb(0, pl061->base + GPIOIE); /* disable irqs */ > > > > This should definitely be the default behaviour. The code code > > expects all interrupt sources to be masked until actively enabled, > > usually with the IRQ being requested. > > > I think this patch is used for that purpose. I do two things in > irq_enable(): unmask irq and then enable IRQ; > > and for irq_disable(), it's similar; mask IRQ then disable it. Hi! Could you please resend this patch rebased on top of v5.11-rc2 and with the detailed explanation you responded with to Andy as part of the commit message? Thanks! Bart