So is there a problem if new interrupt is generated between steps 4 and 5. Do we lose this new interrupt because the isr is still running? So when the isr acks interrupts to asic, it does not ack this new one because it had not happened when the reasons were read at step 4?
I have read the MSI-HOWTO.txt and genirq guides, and even
tried to read some sources. However I have not found out solid answer. Is there some de-facto method to do this so it works reliably?
Following section may contain errors, it is what I have guessed by reading the sources - please kick me if it sounds stupid.
By reading the sources I have figured that the "interrupt-controller" for MSI interrupts on processor does used handle_simple_irq as flow handler. If I am correct, this does not "queue" interrupts in same fashion the handle_edge_irq would do.
Does this mean that my fear is correct?