Lines Matching full:viommu
60 if (hwpt_nested->viommu) in iommufd_hwpt_nested_destroy()
61 refcount_dec(&hwpt_nested->viommu->obj.users); in iommufd_hwpt_nested_destroy()
267 * iommufd_viommu_alloc_hwpt_nested() - Get a hwpt_nested for a vIOMMU
268 * @viommu: vIOMMU ojbect to associate the hwpt_nested/domain with
272 * Allocate a new IOMMU_DOMAIN_NESTED for a vIOMMU and return it as a NESTED
276 iommufd_viommu_alloc_hwpt_nested(struct iommufd_viommu *viommu, u32 flags, in iommufd_viommu_alloc_hwpt_nested() argument
287 if (!viommu->ops || !viommu->ops->alloc_domain_nested) in iommufd_viommu_alloc_hwpt_nested()
291 viommu->ictx, hwpt_nested, IOMMUFD_OBJ_HWPT_NESTED, common.obj); in iommufd_viommu_alloc_hwpt_nested()
296 hwpt_nested->viommu = viommu; in iommufd_viommu_alloc_hwpt_nested()
297 refcount_inc(&viommu->obj.users); in iommufd_viommu_alloc_hwpt_nested()
298 hwpt_nested->parent = viommu->hwpt; in iommufd_viommu_alloc_hwpt_nested()
301 viommu->ops->alloc_domain_nested(viommu, in iommufd_viommu_alloc_hwpt_nested()
309 hwpt->domain->owner = viommu->iommu_dev->ops; in iommufd_viommu_alloc_hwpt_nested()
318 iommufd_object_abort_and_destroy(viommu->ictx, &hwpt->obj); in iommufd_viommu_alloc_hwpt_nested()
380 struct iommufd_viommu *viommu; in iommufd_hwpt_alloc() local
382 viommu = container_of(pt_obj, struct iommufd_viommu, obj); in iommufd_hwpt_alloc()
383 if (viommu->iommu_dev != __iommu_get_iommu_dev(idev->dev)) { in iommufd_hwpt_alloc()
388 viommu, cmd->flags, &user_data); in iommufd_hwpt_alloc()
521 struct iommufd_viommu *viommu = in iommufd_hwpt_invalidate() local
524 if (!viommu->ops || !viommu->ops->cache_invalidate) { in iommufd_hwpt_invalidate()
528 rc = viommu->ops->cache_invalidate(viommu, &data_array); in iommufd_hwpt_invalidate()