Searched refs:hwpt (Results 1 – 9 of 9) sorted by relevance
/openbmc/linux/drivers/iommu/iommufd/ |
H A D | hw_pagetable.c | 12 struct iommufd_hw_pagetable *hwpt = in iommufd_hw_pagetable_destroy() local 15 if (!list_empty(&hwpt->hwpt_item)) { in iommufd_hw_pagetable_destroy() 16 mutex_lock(&hwpt->ioas->mutex); in iommufd_hw_pagetable_destroy() 17 list_del(&hwpt->hwpt_item); 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() 23 if (hwpt->domain) in iommufd_hw_pagetable_destroy() 24 iommu_domain_free(hwpt->domain); in iommufd_hw_pagetable_destroy() 26 refcount_dec(&hwpt->ioas->obj.users); in iommufd_hw_pagetable_destroy() 31 struct iommufd_hw_pagetable *hwpt = in iommufd_hw_pagetable_abort() local [all …]
|
H A D | device.c | 25 WARN_ON(igroup->hwpt || !list_empty(&igroup->device_list)); in iommufd_group_release() 296 struct iommufd_hw_pagetable *hwpt) in iommufd_group_setup_msi() argument 314 if (sw_msi_start != PHYS_ADDR_MAX && !hwpt->msi_cookie) { in iommufd_group_setup_msi() 315 rc = iommu_get_msi_cookie(hwpt->domain, sw_msi_start); in iommufd_group_setup_msi() 323 hwpt->msi_cookie = true; in iommufd_group_setup_msi() 328 int iommufd_hw_pagetable_attach(struct iommufd_hw_pagetable *hwpt, in iommufd_hw_pagetable_attach() argument 335 if (idev->igroup->hwpt != NULL && idev->igroup->hwpt != hwpt) { in iommufd_hw_pagetable_attach() 342 rc = iommufd_hw_pagetable_enforce_cc(hwpt); in iommufd_hw_pagetable_attach() 347 rc = iopt_table_enforce_dev_resv_regions(&hwpt->ioas->iopt, idev->dev, in iommufd_hw_pagetable_attach() 360 rc = iommufd_group_setup_msi(idev->igroup, hwpt); in iommufd_hw_pagetable_attach() [all …]
|
H A D | iommufd_private.h | 246 int iommufd_hw_pagetable_enforce_cc(struct iommufd_hw_pagetable *hwpt); 247 int iommufd_hw_pagetable_attach(struct iommufd_hw_pagetable *hwpt, 256 struct iommufd_hw_pagetable *hwpt) in iommufd_hw_pagetable_put() argument 258 lockdep_assert_not_held(&hwpt->ioas->mutex); in iommufd_hw_pagetable_put() 259 if (hwpt->auto_domain) in iommufd_hw_pagetable_put() 260 iommufd_object_deref_user(ictx, &hwpt->obj); in iommufd_hw_pagetable_put() 262 refcount_dec(&hwpt->obj.users); in iommufd_hw_pagetable_put() 270 struct iommufd_hw_pagetable *hwpt; member
|
H A D | selftest.c | 343 struct iommufd_hw_pagetable *hwpt; in get_md_pagetable() local 350 hwpt = container_of(obj, struct iommufd_hw_pagetable, obj); in get_md_pagetable() 351 if (hwpt->domain->ops != mock_ops.default_domain_ops) { in get_md_pagetable() 352 iommufd_put_object(&hwpt->obj); in get_md_pagetable() 355 *mock = container_of(hwpt->domain, struct mock_iommu_domain, domain); in get_md_pagetable() 356 return hwpt; in get_md_pagetable() 533 struct iommufd_hw_pagetable *hwpt; in iommufd_test_md_check_pa() local 543 hwpt = get_md_pagetable(ucmd, mockpt_id, &mock); in iommufd_test_md_check_pa() 544 if (IS_ERR(hwpt)) in iommufd_test_md_check_pa() 545 return PTR_ERR(hwpt); in iommufd_test_md_check_pa() [all …]
|
H A D | vfio_compat.c | 258 struct iommufd_hw_pagetable *hwpt; in iommufd_vfio_cc_iommu() local 267 list_for_each_entry(hwpt, &ioas->hwpt_list, hwpt_item) { in iommufd_vfio_cc_iommu() 268 if (!hwpt->enforce_cache_coherency) { in iommufd_vfio_cc_iommu()
|
H A D | main.c | 309 struct iommu_hwpt_alloc hwpt; member
|
/openbmc/qemu/hw/vfio/ |
H A D | iommufd.c | 114 static bool iommufd_hwpt_dirty_tracking(VFIOIOASHwpt *hwpt) in iommufd_hwpt_dirty_tracking() argument 116 return hwpt && hwpt->hwpt_flags & IOMMU_HWPT_ALLOC_DIRTY_TRACKING; in iommufd_hwpt_dirty_tracking() 124 VFIOIOASHwpt *hwpt; in iommufd_set_dirty_page_tracking() local 126 QLIST_FOREACH(hwpt, &container->hwpt_list, next) { in iommufd_set_dirty_page_tracking() 127 if (!iommufd_hwpt_dirty_tracking(hwpt)) { in iommufd_set_dirty_page_tracking() 132 hwpt->hwpt_id, start, errp)) { in iommufd_set_dirty_page_tracking() 140 QLIST_FOREACH(hwpt, &container->hwpt_list, next) { in iommufd_set_dirty_page_tracking() 141 if (!iommufd_hwpt_dirty_tracking(hwpt)) { in iommufd_set_dirty_page_tracking() 145 hwpt->hwpt_id, !start, NULL); in iommufd_set_dirty_page_tracking() 158 VFIOIOASHwpt *hwpt; in iommufd_query_dirty_bitmap() local [all …]
|
/openbmc/qemu/backends/ |
H A D | trace-events | 19 iommufd_backend_set_dirty(int iommufd, uint32_t hwpt_id, bool start, int ret) " iommufd=%d hwpt=%u … 20 …, uint64_t iova, uint64_t size, uint64_t page_size, int ret) " iommufd=%d hwpt=%u iova=0x%"PRIx64"…
|
/openbmc/qemu/include/hw/vfio/ |
H A D | vfio-common.h | 151 VFIOIOASHwpt *hwpt; member
|