Lines Matching refs:ioas

221 	rc = iopt_table_enforce_group_resv_regions(&hwpt->ioas->iopt, idev->dev,  in iommufd_device_do_attach()
240 rc = iopt_table_add_domain(&hwpt->ioas->iopt, in iommufd_device_do_attach()
256 iopt_remove_reserved_iova(&hwpt->ioas->iopt, idev->dev); in iommufd_device_do_attach()
268 struct iommufd_ioas *ioas) in iommufd_device_auto_get_domain() argument
278 mutex_lock(&ioas->mutex); in iommufd_device_auto_get_domain()
279 list_for_each_entry(hwpt, &ioas->hwpt_list, hwpt_item) { in iommufd_device_auto_get_domain()
295 hwpt = iommufd_hw_pagetable_alloc(idev->ictx, ioas, idev->dev); in iommufd_device_auto_get_domain()
305 list_add_tail(&hwpt->hwpt_item, &ioas->hwpt_list); in iommufd_device_auto_get_domain()
307 mutex_unlock(&ioas->mutex); in iommufd_device_auto_get_domain()
314 mutex_unlock(&ioas->mutex); in iommufd_device_auto_get_domain()
350 struct iommufd_ioas *ioas = in iommufd_device_attach() local
353 rc = iommufd_device_auto_get_domain(idev, ioas); in iommufd_device_attach()
384 mutex_lock(&hwpt->ioas->mutex); in iommufd_device_detach()
389 iopt_table_remove_domain(&hwpt->ioas->iopt, in iommufd_device_detach()
395 iopt_remove_reserved_iova(&hwpt->ioas->iopt, idev->dev); in iommufd_device_detach()
397 mutex_unlock(&hwpt->ioas->mutex); in iommufd_device_detach()
415 iopt_remove_access(&access->ioas->iopt, access); in iommufd_access_destroy_object()
417 refcount_dec(&access->ioas->obj.users); in iommufd_access_destroy_object()
457 access->ioas = container_of(obj, struct iommufd_ioas, obj); in iommufd_access_create()
464 rc = iopt_add_access(&access->ioas->iopt, access); in iommufd_access_create()
475 refcount_dec(&access->ioas->obj.users); in iommufd_access_create()
516 struct iommufd_ioas *ioas = in iommufd_access_notify_unmap() local
521 xa_lock(&ioas->iopt.access_list); in iommufd_access_notify_unmap()
522 xa_for_each(&ioas->iopt.access_list, index, access) { in iommufd_access_notify_unmap()
525 xa_unlock(&ioas->iopt.access_list); in iommufd_access_notify_unmap()
530 xa_lock(&ioas->iopt.access_list); in iommufd_access_notify_unmap()
532 xa_unlock(&ioas->iopt.access_list); in iommufd_access_notify_unmap()
547 struct io_pagetable *iopt = &access->ioas->iopt; in iommufd_access_unpin_pages()
610 struct io_pagetable *iopt = &access->ioas->iopt; in iommufd_access_pin_pages()
689 struct io_pagetable *iopt = &access->ioas->iopt; in iommufd_access_rw()
737 struct iommufd_ioas *ioas, in iommufd_device_selftest_attach() argument
743 hwpt = iommufd_hw_pagetable_alloc(ictx, ioas, mock_dev); in iommufd_device_selftest_attach()
747 rc = iopt_table_add_domain(&hwpt->ioas->iopt, hwpt->domain); in iommufd_device_selftest_attach()
763 iopt_table_remove_domain(&hwpt->ioas->iopt, hwpt->domain); in iommufd_device_selftest_detach()