On Wed, 7 Mar 2018 13:56:44 +0800 Peter Xu <peterx@xxxxxxxxxx> wrote: > On Wed, Feb 28, 2018 at 01:15:20PM -0700, Alex Williamson wrote: > > [...] > > > @@ -1174,6 +1206,8 @@ static int vfio_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) > > vdev->irq_type = VFIO_PCI_NUM_IRQS; > > mutex_init(&vdev->igate); > > spin_lock_init(&vdev->irqlock); > > + mutex_init(&vdev->ioeventfds_lock); > > Do we better need to destroy the mutex in vfio_pci_remove? > > I see that vfio_pci_device.igate is also without a destructor. I'm > not sure on both. Yeah, mutex_destroy() is purely for debugging and I must have missed it when implementing vfio. I'll add it in the remove function and try to cleanup the others in a separate patch, at some point. Thanks, Alex