RE: [PATCH 1/7] vfio/pci: Disable auto-enable of exclusive INTx IRQ

From: Tian, Kevin
Date: Thu Mar 07 2024 - 03:29:02 EST


> 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..."