Lines Matching refs:ioas
14 struct iommufd_ioas *ioas = container_of(obj, struct iommufd_ioas, obj);
17 rc = iopt_unmap_all(&ioas->iopt, NULL);
19 iopt_destroy_table(&ioas->iopt);
20 mutex_destroy(&ioas->mutex);
25 struct iommufd_ioas *ioas;
27 ioas = iommufd_object_alloc(ictx, ioas, IOMMUFD_OBJ_IOAS);
28 if (IS_ERR(ioas))
29 return ioas;
31 iopt_init_table(&ioas->iopt);
32 INIT_LIST_HEAD(&ioas->hwpt_list);
33 mutex_init(&ioas->mutex);
34 return ioas;
40 struct iommufd_ioas *ioas;
46 ioas = iommufd_ioas_alloc(ucmd->ictx);
47 if (IS_ERR(ioas))
48 return PTR_ERR(ioas);
50 cmd->out_ioas_id = ioas->obj.id;
54 iommufd_object_finalize(ucmd->ictx, &ioas->obj);
58 iommufd_object_abort_and_destroy(ucmd->ictx, &ioas->obj);
66 struct iommufd_ioas *ioas;
74 ioas = iommufd_get_ioas(ucmd->ictx, cmd->ioas_id);
75 if (IS_ERR(ioas))
76 return PTR_ERR(ioas);
78 down_read(&ioas->iopt.iova_rwsem);
82 cmd->out_iova_alignment = ioas->iopt.iova_alignment;
83 interval_tree_for_each_span(&span, &ioas->iopt.reserved_itree, 0,
107 up_read(&ioas->iopt.iova_rwsem);
108 iommufd_put_object(&ioas->obj);
147 struct iommufd_ioas *ioas;
154 ioas = iommufd_get_ioas(ucmd->ictx, cmd->ioas_id);
155 if (IS_ERR(ioas))
156 return PTR_ERR(ioas);
157 iopt = &ioas->iopt;
178 iommufd_put_object(&ioas->obj);
204 struct iommufd_ioas *ioas;
216 ioas = iommufd_get_ioas(ucmd->ictx, cmd->ioas_id);
217 if (IS_ERR(ioas))
218 return PTR_ERR(ioas);
222 rc = iopt_map_user_pages(ucmd->ictx, &ioas->iopt, &iova,
231 iommufd_put_object(&ioas->obj);
291 struct iommufd_ioas *ioas;
295 ioas = iommufd_get_ioas(ucmd->ictx, cmd->ioas_id);
296 if (IS_ERR(ioas))
297 return PTR_ERR(ioas);
300 rc = iopt_unmap_all(&ioas->iopt, &unmapped);
308 rc = iopt_unmap_iova(&ioas->iopt, cmd->iova, cmd->length,
318 iommufd_put_object(&ioas->obj);
357 struct iommufd_ioas *ioas)
360 cmd->val64 = !ioas->iopt.disable_large_pages;
365 return iopt_disable_large_pages(&ioas->iopt);
367 iopt_enable_large_pages(&ioas->iopt);
378 struct iommufd_ioas *ioas;
384 ioas = iommufd_get_ioas(ucmd->ictx, cmd->object_id);
385 if (IS_ERR(ioas))
386 return PTR_ERR(ioas);
390 rc = iommufd_ioas_option_huge_pages(cmd, ioas);
396 iommufd_put_object(&ioas->obj);