On Tuesday 05 October 2021 16:42:29 Marc Zyngier wrote:
As I said, feel free to write something better.
Marek now sent a new version, I hope it is better: https://lore.kernel.org/linux-pci/20211005180952.6812-7-kabel@kernel.org/
Anyway, I was thinking more if it is possible to end up in state when *_status variables are zero also after applying patch 7/13.
I do not know how precisely are bits 8-11 of ISR1 reg handled in HW as description is completely missing in all documentations which I read. These bits represents events for legacy INTx interrupts.
And maybe it is possible that driver for endpoint card run some function in context when all CPU interrupts are disabled and do something which cause card to send Assert_INTA message followed by Deassert_INTA (e.g. poke some register and immediately process event which deassert intx). After endpoint driver function finish its execution then CPU receive PCIe summary interrupt and pci controller driver would see that no event is pending and noting to process.