> From: Alex Williamson <alex.williamson@xxxxxxxxxx> > Sent: Thursday, March 7, 2024 5:15 AM > > Currently for devices requiring masking at the irqchip for INTx, ie. > devices without DisINTx support, the IRQ is enabled in request_irq() > and subsequently disabled as necessary to align with the masked status > flag. This presents a window where the interrupt could fire between > these events, resulting in the IRQ incrementing the disable depth twice. Can you elaborate the last point about disable depth? > This would be unrecoverable for a user since the masked flag prevents > nested enables through vfio. What is 'nested enables'? > > Instead, invert the logic using IRQF_NO_AUTOEN such that exclusive INTx > is never auto-enabled, then unmask as required. > > Fixes: 89e1f7d4c66d ("vfio: Add PCI device driver") > Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> But this patch looks good to me: Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx> with one nit... > > + /* > + * Devices without DisINTx support require an exclusive interrupt, > + * IRQ masking is performed at the IRQ chip. The masked status is "exclusive interrupt, with IRQ masking performed at..."