Lines Matching refs:vfio
18 static struct vfio { struct
24 } vfio; variable
520 lockdep_assert_held(&vfio.group_lock); in vfio_group_find_from_iommu()
526 list_for_each_entry(group, &vfio.group_list, vfio_next) { in vfio_group_find_from_iommu()
541 ida_free(&vfio.group_ida, MINOR(group->dev.devt)); in vfio_group_release()
555 minor = ida_alloc_max(&vfio.group_ida, MINORMASK, GFP_KERNEL); in vfio_group_alloc()
562 group->dev.devt = MKDEV(MAJOR(vfio.group_devt), minor); in vfio_group_alloc()
563 group->dev.class = vfio.class; in vfio_group_alloc()
589 lockdep_assert_held(&vfio.group_lock); in vfio_create_group()
609 list_add(&group->vfio_next, &vfio.group_list); in vfio_create_group()
636 mutex_lock(&vfio.group_lock); in vfio_noiommu_group_alloc()
638 mutex_unlock(&vfio.group_lock); in vfio_noiommu_group_alloc()
692 mutex_lock(&vfio.group_lock); in vfio_group_find_or_alloc()
702 mutex_unlock(&vfio.group_lock); in vfio_group_find_or_alloc()
736 if (!refcount_dec_and_mutex_lock(&group->drivers, &vfio.group_lock)) in vfio_device_remove_group()
768 mutex_unlock(&vfio.group_lock); in vfio_device_remove_group()
928 ida_init(&vfio.group_ida); in vfio_group_init()
929 mutex_init(&vfio.group_lock); in vfio_group_init()
930 INIT_LIST_HEAD(&vfio.group_list); in vfio_group_init()
937 vfio.class = class_create("vfio"); in vfio_group_init()
938 if (IS_ERR(vfio.class)) { in vfio_group_init()
939 ret = PTR_ERR(vfio.class); in vfio_group_init()
943 vfio.class->devnode = vfio_devnode; in vfio_group_init()
945 ret = alloc_chrdev_region(&vfio.group_devt, 0, MINORMASK + 1, "vfio"); in vfio_group_init()
951 class_destroy(vfio.class); in vfio_group_init()
952 vfio.class = NULL; in vfio_group_init()
960 WARN_ON(!list_empty(&vfio.group_list)); in vfio_group_cleanup()
961 ida_destroy(&vfio.group_ida); in vfio_group_cleanup()
962 unregister_chrdev_region(vfio.group_devt, MINORMASK + 1); in vfio_group_cleanup()
963 class_destroy(vfio.class); in vfio_group_cleanup()
964 vfio.class = NULL; in vfio_group_cleanup()