Hi Alex, On 3/9/24 00:05, Alex Williamson wrote: > irqfds for mask and unmask that are not specifically disabled by the > user are leaked. Remove any irqfds during cleanup > > Cc: Eric Auger <eric.auger@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Fixes: a7fa7c77cf15 ("vfio/platform: implement IRQ masking/unmasking via an eventfd") > Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reviewed-by: Eric Auger <eric.auger@xxxxxxxxxx> Eric > --- > drivers/vfio/platform/vfio_platform_irq.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/vfio/platform/vfio_platform_irq.c b/drivers/vfio/platform/vfio_platform_irq.c > index 61a1bfb68ac7..e5dcada9e86c 100644 > --- a/drivers/vfio/platform/vfio_platform_irq.c > +++ b/drivers/vfio/platform/vfio_platform_irq.c > @@ -321,8 +321,11 @@ void vfio_platform_irq_cleanup(struct vfio_platform_device *vdev) > { > int i; > > - for (i = 0; i < vdev->num_irqs; i++) > + for (i = 0; i < vdev->num_irqs; i++) { > + vfio_virqfd_disable(&vdev->irqs[i].mask); > + vfio_virqfd_disable(&vdev->irqs[i].unmask); > vfio_set_trigger(vdev, i, -1, NULL); > + } > > vdev->num_irqs = 0; > kfree(vdev->irqs);