Home
last modified time | relevance | path

Searched refs:iopt (Results 1 – 9 of 9) sorted by relevance

/linux-6.3-rc2/drivers/iommu/iommufd/
A Dio_pagetable.c149 &used_span, &iopt->reserved_itree, &iopt->area_itree, in iopt_alloc_iova()
219 area->iopt = iopt; in iopt_insert_area()
250 iopt, dst_iova, in iopt_alloc_area_pages()
287 if (area->iopt) { in iopt_abort_area()
874 rc = xa_reserve(&iopt->domains, iopt->next_domain_id, GFP_KERNEL); in iopt_table_add_domain()
883 xa_store(&iopt->domains, iopt->next_domain_id, domain, GFP_KERNEL); in iopt_table_add_domain()
884 iopt->next_domain_id++; in iopt_table_add_domain()
889 xa_release(&iopt->domains, iopt->next_domain_id); in iopt_table_add_domain()
953 iopt->next_domain_id--; in iopt_table_remove_domain()
954 iter_domain = xa_erase(&iopt->domains, iopt->next_domain_id); in iopt_table_remove_domain()
[all …]
A Diommufd_private.h52 void iopt_init_table(struct io_pagetable *iopt);
53 void iopt_destroy_table(struct io_pagetable *iopt);
54 int iopt_get_pages(struct io_pagetable *iopt, unsigned long iova,
67 int iopt_unmap_iova(struct io_pagetable *iopt, unsigned long iova,
73 int iopt_table_add_domain(struct io_pagetable *iopt,
75 void iopt_table_remove_domain(struct io_pagetable *iopt,
81 int iopt_set_allow_iova(struct io_pagetable *iopt,
88 void iopt_enable_large_pages(struct io_pagetable *iopt);
89 int iopt_disable_large_pages(struct io_pagetable *iopt);
209 struct io_pagetable iopt; member
[all …]
A Ddevice.c517 container_of(iopt, struct iommufd_ioas, iopt); in iommufd_access_notify_unmap()
547 struct io_pagetable *iopt = &access->ioas->iopt; in iommufd_access_unpin_pages() local
556 down_read(&iopt->iova_rwsem); in iommufd_access_unpin_pages()
563 up_read(&iopt->iova_rwsem); in iommufd_access_unpin_pages()
610 struct io_pagetable *iopt = &access->ioas->iopt; in iommufd_access_pin_pages() local
626 down_read(&iopt->iova_rwsem); in iommufd_access_pin_pages()
655 up_read(&iopt->iova_rwsem); in iommufd_access_pin_pages()
669 up_read(&iopt->iova_rwsem); in iommufd_access_pin_pages()
689 struct io_pagetable *iopt = &access->ioas->iopt; in iommufd_access_rw() local
700 down_read(&iopt->iova_rwsem); in iommufd_access_rw()
[all …]
A Dioas.c17 rc = iopt_unmap_all(&ioas->iopt, NULL); in iommufd_ioas_destroy()
19 iopt_destroy_table(&ioas->iopt); in iommufd_ioas_destroy()
31 iopt_init_table(&ioas->iopt); in iommufd_ioas_alloc()
78 down_read(&ioas->iopt.iova_rwsem); in iommufd_ioas_iova_ranges()
107 up_read(&ioas->iopt.iova_rwsem); in iommufd_ioas_iova_ranges()
148 struct io_pagetable *iopt; in iommufd_ioas_allow_iovas() local
157 iopt = &ioas->iopt; in iommufd_ioas_allow_iovas()
172 rc = iopt_set_allow_iova(iopt, &allowed_iova); in iommufd_ioas_allow_iovas()
300 rc = iopt_unmap_all(&ioas->iopt, &unmapped); in iommufd_ioas_unmap()
360 cmd->val64 = !ioas->iopt.disable_large_pages; in iommufd_ioas_option_huge_pages()
[all …]
A Dvfio_compat.c228 rc = iopt_unmap_all(&ioas->iopt, &unmapped); in iommufd_vfio_unmap_dma()
230 if (READ_ONCE(ioas->iopt.disable_large_pages)) { in iommufd_vfio_unmap_dma()
239 rc = iopt_cut_iova(&ioas->iopt, iovas, in iommufd_vfio_unmap_dma()
244 rc = iopt_unmap_iova(&ioas->iopt, unmap.iova, unmap.size, in iommufd_vfio_unmap_dma()
351 rc = iopt_disable_large_pages(&ioas->iopt); in iommufd_vfio_set_iommu()
358 struct io_pagetable *iopt = &ioas->iopt; in iommufd_get_pagesizes() local
363 down_read(&iopt->domains_rwsem); in iommufd_get_pagesizes()
364 xa_for_each(&iopt->domains, index, domain) in iommufd_get_pagesizes()
373 up_read(&iopt->domains_rwsem); in iommufd_get_pagesizes()
472 down_read(&ioas->iopt.iova_rwsem); in iommufd_vfio_iommu_get_info()
[all …]
A Dio_pagetable.h42 struct io_pagetable *iopt; member
119 struct io_pagetable *iopt, unsigned long start, \
124 lockdep_assert_held(&iopt->iova_rwsem); \
125 node = interval_tree_iter_first(&iopt->name##_itree, start, \
153 struct io_pagetable *iopt,
168 #define iopt_for_each_contig_area(iter, area, iopt, iova, last_iova) \ argument
169 for (area = iopt_area_contig_init(iter, iopt, iova, last_iova); area; \
A Dselftest.c44 static unsigned long iommufd_test_syz_conv_iova(struct io_pagetable *iopt, in iommufd_test_syz_conv_iova() argument
55 down_read(&iopt->iova_rwsem); in iommufd_test_syz_conv_iova()
56 for (area = iopt_area_iter_first(iopt, 0, ULONG_MAX); area; in iommufd_test_syz_conv_iova()
59 up_read(&iopt->iova_rwsem); in iommufd_test_syz_conv_iova()
64 up_read(&iopt->iova_rwsem); in iommufd_test_syz_conv_iova()
81 *iova = iommufd_test_syz_conv_iova(&ioas->iopt, iova); in iommufd_test_syz_conv_iova_id()
328 down_write(&ioas->iopt.iova_rwsem); in iommufd_test_add_reserved()
329 rc = iopt_reserve_iova(&ioas->iopt, start, start + length - 1, NULL); in iommufd_test_add_reserved()
330 up_write(&ioas->iopt.iova_rwsem); in iommufd_test_add_reserved()
652 iova = iommufd_test_syz_conv_iova(&staccess->access->ioas->iopt, in iommufd_test_access_pages()
[all …]
A Dpages.c478 bool disable_large_pages = area->iopt->disable_large_pages; in batch_to_domain()
1406 lockdep_assert_held(&area->iopt->domains_rwsem); in iopt_area_fill_domains()
1408 if (xa_empty(&area->iopt->domains)) in iopt_area_fill_domains()
1420 xa_for_each(&area->iopt->domains, index, domain) { in iopt_area_fill_domains()
1436 area->storage_domain = xa_load(&area->iopt->domains, 0); in iopt_area_fill_domains()
1442 xa_for_each(&area->iopt->domains, unmap_index, domain) { in iopt_area_fill_domains()
1455 if (unmap_index != area->iopt->next_domain_id - 1) { in iopt_area_fill_domains()
1482 struct io_pagetable *iopt = area->iopt; in iopt_area_unfill_domains() local
1486 lockdep_assert_held(&iopt->domains_rwsem); in iopt_area_unfill_domains()
1492 xa_for_each(&iopt->domains, index, domain) in iopt_area_unfill_domains()
/linux-6.3-rc2/drivers/dma/ppc4xx/
A Ddma.h217 u32 iopt; member

Completed in 21 milliseconds