Samuel Thibault, le ven. 18 juil. 2025 21:53:29 +0200, a ecrit:
> > TODO: We still need to work out a strategy to have interrupts enabled
> > during the handler, so that nested interrupts that occur via code that
> > is executed inside the irq handler to make the device raise a new
> > interrupt, are triggered.  Currently these do not work properly.
> > I believe this is the remaining bug with interrupts.
> 
> AIUI, this can be fixed by calling eoi in queue_intr after disabling the
> irq but before actually queueing the irq.

Actually, rethinking about it: for level-triggered interrupts, probably
the race doesn't exist: as long as the driver has not finished
processing what the card wants to tell, the card will keep the interrupt
line up, and thus the interrupt will just raise again on eoi.

So probably we can keep eoi in interrupt.S after calling the handler,
without risking to miss an interrupt.

Samuel

Reply via email to