On Thu, 16 Mar 2017, Mason wrote: > On 16/03/2017 18:47, Thomas Gleixner wrote: > > On Thu, 16 Mar 2017, Mason wrote: > >> I guess if two interrupts fire at the same time, we'll just take two > >> separate exceptions? > > > > Wrong guess. That might work with level interrupts, but with other types > > nothing will raise another exception. Sharing interrupts on edge types is a > > stupid idea, but hardware folks insist on implementing stupid ideas. > > When you say "That might work with level interrupts", what is "that" ? That you take two exceptions because if both have raised the irq it will stay raised when you only handle one. Non level types will not keep it raised in the CPU and you lost. > In my case, > > interrupt-map = <0 0 0 1 &irq0 54 IRQ_TYPE_LEVEL_HIGH>; > interrupts = <54 IRQ_TYPE_LEVEL_HIGH>; > > Both ISRs expect LEVEL_HIGH. In fact, doesn't request_irq > return an error if the triggers are different? That's completely irrelevant. Thanks, tglx