Lines Matching refs:vfio
44 static struct vfio { struct
52 } vfio; argument
153 list_for_each_entry(group, &vfio.group_list, vfio_next) { in __vfio_group_get_from_iommu()
167 mutex_lock(&vfio.group_lock); in vfio_group_get_from_iommu()
169 mutex_unlock(&vfio.group_lock); in vfio_group_get_from_iommu()
180 ida_free(&vfio.group_ida, MINOR(group->dev.devt)); in vfio_group_release()
194 minor = ida_alloc_max(&vfio.group_ida, MINORMASK, GFP_KERNEL); in vfio_group_alloc()
201 group->dev.devt = MKDEV(MAJOR(vfio.group_devt), minor); in vfio_group_alloc()
202 group->dev.class = vfio.class; in vfio_group_alloc()
239 mutex_lock(&vfio.group_lock); in vfio_create_group()
252 list_add(&group->vfio_next, &vfio.group_list); in vfio_create_group()
254 mutex_unlock(&vfio.group_lock); in vfio_create_group()
258 mutex_unlock(&vfio.group_lock); in vfio_create_group()
273 if (!refcount_dec_and_mutex_lock(&group->drivers, &vfio.group_lock)) in vfio_device_remove_group()
305 mutex_unlock(&vfio.group_lock); in vfio_device_remove_group()
353 ida_free(&vfio.device_ida, device->index); in vfio_device_release()
410 ret = ida_alloc_max(&vfio.device_ida, MINORMASK, GFP_KERNEL); in vfio_init_device()
429 device->device.class = vfio.device_class; in vfio_init_device()
435 ida_free(&vfio.device_ida, device->index); in vfio_init_device()
1824 ida_init(&vfio.group_ida); in vfio_init()
1825 ida_init(&vfio.device_ida); in vfio_init()
1826 mutex_init(&vfio.group_lock); in vfio_init()
1827 INIT_LIST_HEAD(&vfio.group_list); in vfio_init()
1834 vfio.class = class_create(THIS_MODULE, "vfio"); in vfio_init()
1835 if (IS_ERR(vfio.class)) { in vfio_init()
1836 ret = PTR_ERR(vfio.class); in vfio_init()
1840 vfio.class->devnode = vfio_devnode; in vfio_init()
1843 vfio.device_class = class_create(THIS_MODULE, "vfio-dev"); in vfio_init()
1844 if (IS_ERR(vfio.device_class)) { in vfio_init()
1845 ret = PTR_ERR(vfio.device_class); in vfio_init()
1849 ret = alloc_chrdev_region(&vfio.group_devt, 0, MINORMASK + 1, "vfio"); in vfio_init()
1857 class_destroy(vfio.device_class); in vfio_init()
1858 vfio.device_class = NULL; in vfio_init()
1860 class_destroy(vfio.class); in vfio_init()
1861 vfio.class = NULL; in vfio_init()
1869 WARN_ON(!list_empty(&vfio.group_list)); in vfio_cleanup()
1871 ida_destroy(&vfio.device_ida); in vfio_cleanup()
1872 ida_destroy(&vfio.group_ida); in vfio_cleanup()
1873 unregister_chrdev_region(vfio.group_devt, MINORMASK + 1); in vfio_cleanup()
1874 class_destroy(vfio.device_class); in vfio_cleanup()
1875 vfio.device_class = NULL; in vfio_cleanup()
1876 class_destroy(vfio.class); in vfio_cleanup()
1878 vfio.class = NULL; in vfio_cleanup()