Damien Zammit, le dim. 05 juil. 2020 11:50:12 +1000, a ecrit: > - if (status) > - /* TODO: better name for generic-to-arch-specific call */ > - __enable_irq (line); > - else > - __disable_irq (line); > + if (irqtab.irqdev_ack) > + (*(irqtab.irqdev_ack)) (&irqtab, e->id); > + > + irq_enable (irqtab.irq[e->id]); > +
Err, no we don't necessarily want to enable the irq. In the case where the IRQ is shared by several userland drivers, we only want to enable the IRQ again once *all* of them have acknowledged the IRQ, otherwise we may miss IRQs. That's also one of the points of the counting done in the code currently in the Linux glue layer. I really think we want to keep that counting as it is, we can for instance move it from the Linux glue code to irq.c Samuel