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. Thanks, > + INIT_LIST_HEAD(&vdev->ioeventfds_list); > > ret = vfio_add_group_dev(&pdev->dev, &vfio_pci_ops, vdev); > if (ret) { -- Peter Xu