On 09-08-21, 13:19, Arnd Bergmann wrote: > I don't see anything wrong with this version, Great. > but let's see what > Marc thinks. I expect that he can still poke some holes in it, or > at least find some simplifications. Right, though I may resend the patches properly first to make it less confusing. > I was slightly surprised at the relation between the disabled and > masked states, where 'disable' always implies 'mask' and > 'enable' always implies 'unmask', but I don't actually know how > those two are actually defined in the irqchip code in Linux, so > I assume you did this correctly. I did have a look at the irq-core, but didn't go in real depth. I rather saw how stuff happens at the driver's end. - On setup-irq, the core only calls enable() and not unmask(). - On interrupt, the core calls mask(), followed by unmask() (which can be delayed for threaded irqs). - On disable_irq(), the core only calls disable(). - On enable_irq(), the core only calls enable(). And so I ended up at this version :) -- viresh