Home
last modified time | relevance | path

Searched refs:ioas (Results 1 - 7 of 7) sorted by relevance

/kernel/linux/linux-6.6/drivers/iommu/iommufd/
H A Dvfio_compat.c17 struct iommufd_ioas *ioas = ERR_PTR(-ENODEV); in get_compat_ioas() local
22 ioas = ictx->vfio_ioas; in get_compat_ioas()
25 return ioas; in get_compat_ioas()
38 struct iommufd_ioas *ioas; in iommufd_vfio_compat_ioas_get_id() local
40 ioas = get_compat_ioas(ictx); in iommufd_vfio_compat_ioas_get_id()
41 if (IS_ERR(ioas)) in iommufd_vfio_compat_ioas_get_id()
42 return PTR_ERR(ioas); in iommufd_vfio_compat_ioas_get_id()
43 *out_ioas_id = ioas->obj.id; in iommufd_vfio_compat_ioas_get_id()
44 iommufd_put_object(&ioas->obj); in iommufd_vfio_compat_ioas_get_id()
77 * group should cause a default creation of the internal ioas, thi
82 struct iommufd_ioas *ioas = NULL; iommufd_vfio_compat_ioas_create() local
126 struct iommufd_ioas *ioas; iommufd_vfio_ioas() local
166 struct iommufd_ioas *ioas; iommufd_vfio_map_dma() local
210 struct iommufd_ioas *ioas; iommufd_vfio_unmap_dma() local
259 struct iommufd_ioas *ioas; iommufd_vfio_cc_iommu() local
318 struct iommufd_ioas *ioas = NULL; iommufd_vfio_set_iommu() local
356 iommufd_get_pagesizes(struct iommufd_ioas *ioas) iommufd_get_pagesizes() argument
377 iommufd_fill_cap_iova(struct iommufd_ioas *ioas, struct vfio_info_cap_header __user *cur, size_t avail) iommufd_fill_cap_iova() argument
414 iommufd_fill_cap_dma_avail(struct iommufd_ioas *ioas, struct vfio_info_cap_header __user *cur, size_t avail) iommufd_fill_cap_dma_avail() argument
452 struct iommufd_ioas *ioas; iommufd_vfio_iommu_get_info() local
[all...]
H A Dioas.c14 struct iommufd_ioas *ioas = container_of(obj, struct iommufd_ioas, obj); in iommufd_ioas_destroy() local
17 rc = iopt_unmap_all(&ioas->iopt, NULL); in iommufd_ioas_destroy()
19 iopt_destroy_table(&ioas->iopt); in iommufd_ioas_destroy()
20 mutex_destroy(&ioas->mutex); in iommufd_ioas_destroy()
25 struct iommufd_ioas *ioas; in iommufd_ioas_alloc() local
27 ioas = iommufd_object_alloc(ictx, ioas, IOMMUFD_OBJ_IOAS); in iommufd_ioas_alloc()
28 if (IS_ERR(ioas)) in iommufd_ioas_alloc()
29 return ioas; in iommufd_ioas_alloc()
31 iopt_init_table(&ioas in iommufd_ioas_alloc()
40 struct iommufd_ioas *ioas; iommufd_ioas_alloc_ioctl() local
66 struct iommufd_ioas *ioas; iommufd_ioas_iova_ranges() local
147 struct iommufd_ioas *ioas; iommufd_ioas_allow_iovas() local
204 struct iommufd_ioas *ioas; iommufd_ioas_map() local
291 struct iommufd_ioas *ioas; iommufd_ioas_unmap() local
356 iommufd_ioas_option_huge_pages(struct iommu_option *cmd, struct iommufd_ioas *ioas) iommufd_ioas_option_huge_pages() argument
378 struct iommufd_ioas *ioas; iommufd_ioas_option() local
[all...]
H A Dhw_pagetable.c16 mutex_lock(&hwpt->ioas->mutex); in iommufd_hw_pagetable_destroy()
18 mutex_unlock(&hwpt->ioas->mutex); in iommufd_hw_pagetable_destroy()
20 iopt_table_remove_domain(&hwpt->ioas->iopt, hwpt->domain); in iommufd_hw_pagetable_destroy()
26 refcount_dec(&hwpt->ioas->obj.users); in iommufd_hw_pagetable_destroy()
34 /* The ioas->mutex must be held until finalize is called. */ in iommufd_hw_pagetable_abort()
35 lockdep_assert_held(&hwpt->ioas->mutex); in iommufd_hw_pagetable_abort()
39 iopt_table_remove_domain(&hwpt->ioas->iopt, hwpt->domain); in iommufd_hw_pagetable_abort()
61 * @ioas: IOAS to associate the domain with
66 * will be linked to the given ioas and upon return the underlying iommu_domain
69 * The caller must hold the ioas
74 iommufd_hw_pagetable_alloc(struct iommufd_ctx *ictx, struct iommufd_ioas *ioas, struct iommufd_device *idev, bool immediate_attach) iommufd_hw_pagetable_alloc() argument
141 struct iommufd_ioas *ioas; iommufd_hwpt_alloc() local
[all...]
H A Ddevice.c347 rc = iopt_table_enforce_dev_resv_regions(&hwpt->ioas->iopt, idev->dev, in iommufd_hw_pagetable_attach()
374 iopt_remove_reserved_iova(&hwpt->ioas->iopt, idev->dev); in iommufd_hw_pagetable_attach()
391 iopt_remove_reserved_iova(&hwpt->ioas->iopt, idev->dev); in iommufd_hw_pagetable_detach()
443 if (hwpt->ioas != old_hwpt->ioas) { in iommufd_device_do_replace()
446 &hwpt->ioas->iopt, cur->dev, NULL); in iommufd_device_do_replace()
460 if (hwpt->ioas != old_hwpt->ioas) { in iommufd_device_do_replace()
462 iopt_remove_reserved_iova(&old_hwpt->ioas->iopt, in iommufd_device_do_replace()
482 iopt_remove_reserved_iova(&hwpt->ioas in iommufd_device_do_replace()
497 iommufd_device_auto_get_domain(struct iommufd_device *idev, struct iommufd_ioas *ioas, u32 *pt_id, attach_fn do_attach) iommufd_device_auto_get_domain() argument
592 struct iommufd_ioas *ioas = iommufd_device_change_pt() local
739 struct iommufd_ioas *ioas = iommufd_get_ioas(access->ictx, id); iommufd_access_change_ioas_id() local
881 struct iommufd_ioas *ioas = iommufd_access_notify_unmap() local
[all...]
H A Dselftest.c75 struct iommufd_ioas *ioas; in iommufd_test_syz_conv_iova_id() local
81 ioas = iommufd_get_ioas(ucmd->ictx, ioas_id); in iommufd_test_syz_conv_iova_id()
82 if (IS_ERR(ioas)) in iommufd_test_syz_conv_iova_id()
84 *iova = iommufd_test_syz_conv_iova(&ioas->iopt, iova); in iommufd_test_syz_conv_iova_id()
85 iommufd_put_object(&ioas->obj); in iommufd_test_syz_conv_iova_id()
500 struct iommufd_ioas *ioas; in iommufd_test_add_reserved() local
503 ioas = iommufd_get_ioas(ucmd->ictx, mockpt_id); in iommufd_test_add_reserved()
504 if (IS_ERR(ioas)) in iommufd_test_add_reserved()
505 return PTR_ERR(ioas); in iommufd_test_add_reserved()
506 down_write(&ioas in iommufd_test_add_reserved()
[all...]
H A Diommufd_private.h234 struct iommufd_ioas *ioas; member
244 iommufd_hw_pagetable_alloc(struct iommufd_ctx *ictx, struct iommufd_ioas *ioas,
258 lockdep_assert_not_held(&hwpt->ioas->mutex); in iommufd_hw_pagetable_put()
304 struct iommufd_ioas *ioas; member
H A DMakefile6 ioas.o \

Completed in 5 milliseconds