Lines Matching refs:vfio

40 static struct vfio {  struct
49 } vfio; argument
223 mutex_lock(&vfio.iommu_drivers_lock); in vfio_register_iommu_driver()
226 list_for_each_entry(tmp, &vfio.iommu_drivers_list, vfio_next) { in vfio_register_iommu_driver()
228 mutex_unlock(&vfio.iommu_drivers_lock); in vfio_register_iommu_driver()
234 list_add(&driver->vfio_next, &vfio.iommu_drivers_list); in vfio_register_iommu_driver()
236 mutex_unlock(&vfio.iommu_drivers_lock); in vfio_register_iommu_driver()
246 mutex_lock(&vfio.iommu_drivers_lock); in vfio_unregister_iommu_driver()
247 list_for_each_entry(driver, &vfio.iommu_drivers_list, vfio_next) { in vfio_unregister_iommu_driver()
250 mutex_unlock(&vfio.iommu_drivers_lock); in vfio_unregister_iommu_driver()
255 mutex_unlock(&vfio.iommu_drivers_lock); in vfio_unregister_iommu_driver()
264 return idr_alloc(&vfio.group_idr, group, 0, MINORMASK + 1, GFP_KERNEL); in vfio_alloc_group_minor()
269 idr_remove(&vfio.group_idr, minor); in vfio_free_group_minor()
302 mutex_unlock(&vfio.group_lock); in vfio_group_unlock_and_free()
353 mutex_lock(&vfio.group_lock); in vfio_create_group()
356 list_for_each_entry(tmp, &vfio.group_list, vfio_next) { in vfio_create_group()
370 dev = device_create(vfio.class, NULL, in vfio_create_group()
371 MKDEV(MAJOR(vfio.group_devt), minor), in vfio_create_group()
383 list_add(&group->vfio_next, &vfio.group_list); in vfio_create_group()
385 mutex_unlock(&vfio.group_lock); in vfio_create_group()
406 device_destroy(vfio.class, MKDEV(MAJOR(vfio.group_devt), group->minor)); in vfio_group_release()
415 kref_put_mutex(&group->kref, vfio_group_release, &vfio.group_lock); in vfio_group_put()
460 mutex_lock(&vfio.group_lock); in vfio_group_try_get()
461 list_for_each_entry(group, &vfio.group_list, vfio_next) { in vfio_group_try_get()
464 mutex_unlock(&vfio.group_lock); in vfio_group_try_get()
468 mutex_unlock(&vfio.group_lock); in vfio_group_try_get()
478 mutex_lock(&vfio.group_lock); in vfio_group_get_from_iommu()
479 list_for_each_entry(group, &vfio.group_list, vfio_next) { in vfio_group_get_from_iommu()
482 mutex_unlock(&vfio.group_lock); in vfio_group_get_from_iommu()
486 mutex_unlock(&vfio.group_lock); in vfio_group_get_from_iommu()
495 mutex_lock(&vfio.group_lock); in vfio_group_get_from_minor()
496 group = idr_find(&vfio.group_idr, minor); in vfio_group_get_from_minor()
498 mutex_unlock(&vfio.group_lock); in vfio_group_get_from_minor()
502 mutex_unlock(&vfio.group_lock); in vfio_group_get_from_minor()
1000 mutex_lock(&vfio.iommu_drivers_lock); in vfio_ioctl_check_extension()
1001 list_for_each_entry(driver, &vfio.iommu_drivers_list, in vfio_ioctl_check_extension()
1021 mutex_unlock(&vfio.iommu_drivers_lock); in vfio_ioctl_check_extension()
1078 mutex_lock(&vfio.iommu_drivers_lock); in vfio_ioctl_set_iommu()
1079 list_for_each_entry(driver, &vfio.iommu_drivers_list, vfio_next) { in vfio_ioctl_set_iommu()
1125 mutex_unlock(&vfio.iommu_drivers_lock); in vfio_ioctl_set_iommu()
2315 idr_init(&vfio.group_idr); in vfio_init()
2316 mutex_init(&vfio.group_lock); in vfio_init()
2317 mutex_init(&vfio.iommu_drivers_lock); in vfio_init()
2318 INIT_LIST_HEAD(&vfio.group_list); in vfio_init()
2319 INIT_LIST_HEAD(&vfio.iommu_drivers_list); in vfio_init()
2328 vfio.class = class_create(THIS_MODULE, "vfio"); in vfio_init()
2329 if (IS_ERR(vfio.class)) { in vfio_init()
2330 ret = PTR_ERR(vfio.class); in vfio_init()
2334 vfio.class->devnode = vfio_devnode; in vfio_init()
2336 ret = alloc_chrdev_region(&vfio.group_devt, 0, MINORMASK + 1, "vfio"); in vfio_init()
2340 cdev_init(&vfio.group_cdev, &vfio_group_fops); in vfio_init()
2341 ret = cdev_add(&vfio.group_cdev, vfio.group_devt, MINORMASK + 1); in vfio_init()
2353 unregister_chrdev_region(vfio.group_devt, MINORMASK + 1); in vfio_init()
2355 class_destroy(vfio.class); in vfio_init()
2356 vfio.class = NULL; in vfio_init()
2364 WARN_ON(!list_empty(&vfio.group_list)); in vfio_cleanup()
2369 idr_destroy(&vfio.group_idr); in vfio_cleanup()
2370 cdev_del(&vfio.group_cdev); in vfio_cleanup()
2371 unregister_chrdev_region(vfio.group_devt, MINORMASK + 1); in vfio_cleanup()
2372 class_destroy(vfio.class); in vfio_cleanup()
2373 vfio.class = NULL; in vfio_cleanup()