Lines Matching refs:vfio
18 static struct vfio { struct
24 } vfio; argument
513 lockdep_assert_held(&vfio.group_lock); in vfio_group_find_from_iommu()
519 list_for_each_entry(group, &vfio.group_list, vfio_next) { in vfio_group_find_from_iommu()
534 ida_free(&vfio.group_ida, MINOR(group->dev.devt)); in vfio_group_release()
548 minor = ida_alloc_max(&vfio.group_ida, MINORMASK, GFP_KERNEL); in vfio_group_alloc()
555 group->dev.devt = MKDEV(MAJOR(vfio.group_devt), minor); in vfio_group_alloc()
556 group->dev.class = vfio.class; in vfio_group_alloc()
582 lockdep_assert_held(&vfio.group_lock); in vfio_create_group()
602 list_add(&group->vfio_next, &vfio.group_list); in vfio_create_group()
629 mutex_lock(&vfio.group_lock); in vfio_noiommu_group_alloc()
631 mutex_unlock(&vfio.group_lock); in vfio_noiommu_group_alloc()
685 mutex_lock(&vfio.group_lock); in vfio_group_find_or_alloc()
695 mutex_unlock(&vfio.group_lock); in vfio_group_find_or_alloc()
729 if (!refcount_dec_and_mutex_lock(&group->drivers, &vfio.group_lock)) in vfio_device_remove_group()
761 mutex_unlock(&vfio.group_lock); in vfio_device_remove_group()
921 ida_init(&vfio.group_ida); in vfio_group_init()
922 mutex_init(&vfio.group_lock); in vfio_group_init()
923 INIT_LIST_HEAD(&vfio.group_list); in vfio_group_init()
930 vfio.class = class_create("vfio"); in vfio_group_init()
931 if (IS_ERR(vfio.class)) { in vfio_group_init()
932 ret = PTR_ERR(vfio.class); in vfio_group_init()
936 vfio.class->devnode = vfio_devnode; in vfio_group_init()
938 ret = alloc_chrdev_region(&vfio.group_devt, 0, MINORMASK + 1, "vfio"); in vfio_group_init()
944 class_destroy(vfio.class); in vfio_group_init()
945 vfio.class = NULL; in vfio_group_init()
953 WARN_ON(!list_empty(&vfio.group_list)); in vfio_group_cleanup()
954 ida_destroy(&vfio.group_ida); in vfio_group_cleanup()
955 unregister_chrdev_region(vfio.group_devt, MINORMASK + 1); in vfio_group_cleanup()
956 class_destroy(vfio.class); in vfio_group_cleanup()
957 vfio.class = NULL; in vfio_group_cleanup()