• Home
  • Raw
  • Download

Lines Matching refs:iommu_group

74 	struct iommu_group		*iommu_group;  member
107 struct iommu_group *vfio_iommu_group_get(struct device *dev) in vfio_iommu_group_get()
109 struct iommu_group *group; in vfio_iommu_group_get()
152 void vfio_iommu_group_put(struct iommu_group *group, struct device *dev) in vfio_iommu_group_put()
188 struct iommu_group *iommu_group) in vfio_noiommu_attach_group() argument
190 return iommu_group_get_iommudata(iommu_group) == &noiommu ? 0 : -EINVAL; in vfio_noiommu_attach_group()
194 struct iommu_group *iommu_group) in vfio_noiommu_detach_group() argument
307 iommu_group_unregister_notifier(group->iommu_group, &group->nb); in vfio_group_unlock_and_free()
314 static struct vfio_group *vfio_create_group(struct iommu_group *iommu_group) in vfio_create_group() argument
332 group->iommu_group = iommu_group; in vfio_create_group()
334 group->noiommu = (iommu_group_get_iommudata(iommu_group) == &noiommu); in vfio_create_group()
347 ret = iommu_group_register_notifier(iommu_group, &group->nb); in vfio_create_group()
357 if (tmp->iommu_group == iommu_group) { in vfio_create_group()
373 iommu_group_id(iommu_group)); in vfio_create_group()
395 struct iommu_group *iommu_group = group->iommu_group; in vfio_group_release() local
410 iommu_group_put(iommu_group); in vfio_group_release()
474 struct vfio_group *vfio_group_get_from_iommu(struct iommu_group *iommu_group) in vfio_group_get_from_iommu() argument
480 if (group->iommu_group == iommu_group) { in vfio_group_get_from_iommu()
509 struct iommu_group *iommu_group; in vfio_group_get_from_dev() local
512 iommu_group = iommu_group_get(dev); in vfio_group_get_from_dev()
513 if (!iommu_group) in vfio_group_get_from_dev()
516 group = vfio_group_get_from_iommu(iommu_group); in vfio_group_get_from_dev()
517 iommu_group_put(iommu_group); in vfio_group_get_from_dev()
649 iommu_group_id(group->iommu_group)); in vfio_group_nb_add_dev()
693 iommu_group_id(group->iommu_group)); in vfio_iommu_group_notifier()
697 iommu_group_id(group->iommu_group), dev->driver->name); in vfio_iommu_group_notifier()
702 __func__, iommu_group_id(group->iommu_group), in vfio_iommu_group_notifier()
707 iommu_group_id(group->iommu_group)); in vfio_iommu_group_notifier()
756 struct iommu_group *iommu_group; in vfio_register_group_dev() local
759 iommu_group = iommu_group_get(device->dev); in vfio_register_group_dev()
760 if (!iommu_group) in vfio_register_group_dev()
763 group = vfio_group_get_from_iommu(iommu_group); in vfio_register_group_dev()
765 group = vfio_create_group(iommu_group); in vfio_register_group_dev()
767 iommu_group_put(iommu_group); in vfio_register_group_dev()
775 iommu_group_put(iommu_group); in vfio_register_group_dev()
781 iommu_group_id(iommu_group)); in vfio_register_group_dev()
1041 ret = driver->ops->attach_group(data, group->iommu_group); in __vfio_container_attach_groups()
1051 driver->ops->detach_group(data, group->iommu_group); in __vfio_container_attach_groups()
1262 group->iommu_group); in __vfio_group_unset_container()
1351 group->iommu_group); in vfio_group_set_container()
1372 return (iommu_group_for_each_dev(group->iommu_group, in vfio_group_viable()
1755 return iommu_group_id(group->iommu_group); in vfio_external_user_iommu_id()
1926 group->iommu_group, user_pfn, in vfio_pin_pages()
2027 group->iommu_group, user_iova_pfn, in vfio_group_pin_pages()