Lines Matching defs:vfio
8 * Derived from original vfio:
13 #include <linux/vfio.h>
16 #include "vfio.h"
18 static struct vfio {
24 } vfio;
56 * VFIO Group fd, /dev/vfio/$GROUP
275 filep = anon_inode_getfile("[vfio-device]", &vfio_device_fops,
290 dev_warn(device->dev, "vfio-noiommu device opened by user "
513 lockdep_assert_held(&vfio.group_lock);
516 * group->iommu_group from the vfio.group_list cannot be NULL
517 * under the vfio.group_lock.
519 list_for_each_entry(group, &vfio.group_list, vfio_next) {
534 ida_free(&vfio.group_ida, MINOR(group->dev.devt));
548 minor = ida_alloc_max(&vfio.group_ida, MINORMASK, GFP_KERNEL);
555 group->dev.devt = MKDEV(MAJOR(vfio.group_devt), minor);
556 group->dev.class = vfio.class;
582 lockdep_assert_held(&vfio.group_lock);
602 list_add(&group->vfio_next, &vfio.group_list);
622 ret = iommu_group_set_name(iommu_group, "vfio-noiommu");
629 mutex_lock(&vfio.group_lock);
631 mutex_unlock(&vfio.group_lock);
677 dev_warn(dev, "Adding kernel taint for vfio-noiommu group on device\n");
685 mutex_lock(&vfio.group_lock);
695 mutex_unlock(&vfio.group_lock);
729 if (!refcount_dec_and_mutex_lock(&group->drivers, &vfio.group_lock))
761 mutex_unlock(&vfio.group_lock);
826 * vfio_file_iommu_group - Return the struct iommu_group for the vfio group file
855 * vfio_file_is_group - True if the file is a vfio group file
914 return kasprintf(GFP_KERNEL, "vfio/%s", dev_name(dev));
921 ida_init(&vfio.group_ida);
922 mutex_init(&vfio.group_lock);
923 INIT_LIST_HEAD(&vfio.group_list);
929 /* /dev/vfio/$GROUP */
930 vfio.class = class_create("vfio");
931 if (IS_ERR(vfio.class)) {
932 ret = PTR_ERR(vfio.class);
936 vfio.class->devnode = vfio_devnode;
938 ret = alloc_chrdev_region(&vfio.group_devt, 0, MINORMASK + 1, "vfio");
944 class_destroy(vfio.class);
945 vfio.class = NULL;
953 WARN_ON(!list_empty(&vfio.group_list));
954 ida_destroy(&vfio.group_ida);
955 unregister_chrdev_region(vfio.group_devt, MINORMASK + 1);
956 class_destroy(vfio.class);
957 vfio.class = NULL;