Lines Matching refs:iommu_group

123 	if (!group->iommu_group) {  in vfio_group_ioctl_set_container()
316 if (!group->iommu_group) { in vfio_group_ioctl_get_status()
331 else if (!iommu_group_dma_owner_claimed(group->iommu_group)) in vfio_group_ioctl_get_status()
432 vfio_group_find_from_iommu(struct iommu_group *iommu_group) in vfio_group_find_from_iommu() argument
443 if (group->iommu_group == iommu_group) in vfio_group_find_from_iommu()
455 WARN_ON(group->iommu_group); in vfio_group_release()
460 static struct vfio_group *vfio_group_alloc(struct iommu_group *iommu_group, in vfio_group_alloc() argument
488 group->iommu_group = iommu_group; in vfio_group_alloc()
490 iommu_group_ref_get(iommu_group); in vfio_group_alloc()
497 static struct vfio_group *vfio_create_group(struct iommu_group *iommu_group, in vfio_create_group() argument
506 group = vfio_group_alloc(iommu_group, type); in vfio_create_group()
512 iommu_group_id(iommu_group)); in vfio_create_group()
536 struct iommu_group *iommu_group; in vfio_noiommu_group_alloc() local
540 iommu_group = iommu_group_alloc(); in vfio_noiommu_group_alloc()
541 if (IS_ERR(iommu_group)) in vfio_noiommu_group_alloc()
542 return ERR_CAST(iommu_group); in vfio_noiommu_group_alloc()
544 ret = iommu_group_set_name(iommu_group, "vfio-noiommu"); in vfio_noiommu_group_alloc()
547 ret = iommu_group_add_device(iommu_group, dev); in vfio_noiommu_group_alloc()
552 group = vfio_create_group(iommu_group, type); in vfio_noiommu_group_alloc()
558 iommu_group_put(iommu_group); in vfio_noiommu_group_alloc()
564 iommu_group_put(iommu_group); in vfio_noiommu_group_alloc()
585 struct iommu_group *iommu_group; in vfio_group_find_or_alloc() local
588 iommu_group = iommu_group_get(dev); in vfio_group_find_or_alloc()
589 if (!iommu_group && vfio_noiommu) { in vfio_group_find_or_alloc()
604 if (!iommu_group) in vfio_group_find_or_alloc()
613 iommu_group_put(iommu_group); in vfio_group_find_or_alloc()
618 group = vfio_group_find_from_iommu(iommu_group); in vfio_group_find_or_alloc()
625 group = vfio_create_group(iommu_group, VFIO_IOMMU); in vfio_group_find_or_alloc()
630 iommu_group_put(iommu_group); in vfio_group_find_or_alloc()
655 struct iommu_group *iommu_group; in vfio_device_remove_group() local
690 iommu_group = group->iommu_group; in vfio_device_remove_group()
691 group->iommu_group = NULL; in vfio_device_remove_group()
695 iommu_group_put(iommu_group); in vfio_device_remove_group()
756 struct iommu_group *vfio_file_iommu_group(struct file *file) in vfio_file_iommu_group()
759 struct iommu_group *iommu_group = NULL; in vfio_file_iommu_group() local
768 if (group->iommu_group) { in vfio_file_iommu_group()
769 iommu_group = group->iommu_group; in vfio_file_iommu_group()
770 iommu_group_ref_get(iommu_group); in vfio_file_iommu_group()
773 return iommu_group; in vfio_file_iommu_group()