| /linux/include/linux/ |
| H A D | iova.h | 18 struct iova { struct 27 /* holds all the iova translations for a domain */ argument 43 static inline unsigned long iova_size(struct iova *iova) in iova_size() 58 static inline size_t iova_offset(struct iova_domain *iovad, dma_addr_t iova) in iova_offset() 73 static inline dma_addr_t iova_dma_addr(struct iova_domain *iovad, struct iova *iova) in iova_dma_addr() 78 static inline unsigned long iova_pfn(struct iova_domain *iovad, dma_addr_t iova) in iova_pfn() 119 static inline void __free_iova(struct iova_domain *iovad, struct iova *iova) in __free_iova()
|
| /linux/drivers/iommu/iommufd/ |
| H A D | iova_bitmap.c | 36 unsigned long iova; member 115 unsigned long iova; member 130 static unsigned long iova_bitmap_offset_to_index(struct iova_bitmap *bitmap, in iova_bitmap_offset_to_index() 243 struct iova_bitmap *iova_bitmap_alloc(unsigned long iova, size_t length, in iova_bitmap_alloc() 321 unsigned long iova = iova_bitmap_mapped_iova(bitmap); in iova_bitmap_mapped_length() local 343 unsigned long iova, size_t length) in iova_bitmap_mapped_range() 356 unsigned long iova) in iova_bitmap_advance_to() 402 unsigned long iova, size_t length) in iova_bitmap_set()
|
| H A D | io_pagetable.c | 33 unsigned long iova, in iopt_area_contig_init() 118 static int iopt_alloc_iova(struct io_pagetable *iopt, unsigned long *iova, in iopt_alloc_iova() 181 static int iopt_check_iova(struct io_pagetable *iopt, unsigned long iova, in iopt_check_iova() 208 struct iopt_pages *pages, unsigned long iova, in iopt_insert_area() 261 unsigned long iova; in iopt_alloc_area_pages() local 404 struct iopt_pages *pages, unsigned long *iova, in iopt_map_common() 451 unsigned long *iova, void __user *uptr, in iopt_map_user_pages() 478 unsigned long *iova, struct file *file, in iopt_map_file_pages() 500 unsigned long iova, size_t length, in __iommu_read_and_clear_dirty() 663 int iopt_get_pages(struct io_pagetable *iopt, unsigned long iova, in iopt_get_pages() [all …]
|
| /linux/drivers/infiniband/sw/rxe/ |
| H A D | rxe_odp.c | 80 u64 iova, int access_flags, struct rxe_mr *mr) in rxe_odp_mr_init_user() 127 static inline bool rxe_check_pagefault(struct ib_umem_odp *umem_odp, u64 iova, in rxe_check_pagefault() 150 static unsigned long rxe_odp_iova_to_index(struct ib_umem_odp *umem_odp, u64 iova) in rxe_odp_iova_to_index() 155 static unsigned long rxe_odp_iova_to_page_offset(struct ib_umem_odp *umem_odp, u64 iova) in rxe_odp_iova_to_page_offset() 160 static int rxe_odp_map_range_and_lock(struct rxe_mr *mr, u64 iova, int length, u32 flags) in rxe_odp_map_range_and_lock() 189 static int __rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, in __rxe_odp_mr_copy() 225 int rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, int length, in rxe_odp_mr_copy() 261 static enum resp_states rxe_odp_do_atomic_op(struct rxe_mr *mr, u64 iova, in rxe_odp_do_atomic_op() 312 enum resp_states rxe_odp_atomic_op(struct rxe_mr *mr, u64 iova, int opcode, in rxe_odp_atomic_op() 330 int rxe_odp_flush_pmem_iova(struct rxe_mr *mr, u64 iova, in rxe_odp_flush_pmem_iova() [all …]
|
| H A D | rxe_loc.h | 211 rxe_odp_mr_init_user(struct rxe_dev *rxe, u64 start, u64 length, u64 iova, in rxe_odp_mr_init_user() 216 static inline int rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, in rxe_odp_mr_copy() 222 rxe_odp_atomic_op(struct rxe_mr *mr, u64 iova, int opcode, in rxe_odp_atomic_op() 227 static inline int rxe_odp_flush_pmem_iova(struct rxe_mr *mr, u64 iova, in rxe_odp_flush_pmem_iova() 233 u64 iova, u64 value) in rxe_odp_do_atomic_write()
|
| H A D | rxe_mr.c | 27 int mr_check_range(struct rxe_mr *mr, u64 iova, size_t length) in mr_check_range() 75 static unsigned long rxe_mr_iova_to_index(struct rxe_mr *mr, u64 iova) in rxe_mr_iova_to_index() 80 static unsigned long rxe_mr_iova_to_page_offset(struct rxe_mr *mr, u64 iova) in rxe_mr_iova_to_page_offset() 245 static int rxe_mr_copy_xarray(struct rxe_mr *mr, u64 iova, void *addr, in rxe_mr_copy_xarray() 304 int rxe_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, in rxe_mr_copy() 348 u64 iova; in copy_data() local 427 static int rxe_mr_flush_pmem_iova(struct rxe_mr *mr, u64 iova, unsigned int length) in rxe_mr_flush_pmem_iova() 486 enum resp_states rxe_mr_do_atomic_op(struct rxe_mr *mr, u64 iova, int opcode, in rxe_mr_do_atomic_op() 542 enum resp_states rxe_mr_do_atomic_write(struct rxe_mr *mr, u64 iova, u64 value) in rxe_mr_do_atomic_write()
|
| /linux/drivers/media/pci/intel/ipu6/ |
| H A D | ipu6-mmu.c | 99 u32 iova = (phys_addr_t)l1_idx << ISP_L1PT_SHIFT; in page_table_dump() local 257 static void l2_unmap(struct ipu6_mmu_info *mmu_info, unsigned long iova, in l2_unmap() 306 static int l2_map(struct ipu6_mmu_info *mmu_info, unsigned long iova, in l2_map() 395 static int __ipu6_mmu_map(struct ipu6_mmu_info *mmu_info, unsigned long iova, in __ipu6_mmu_map() 409 unsigned long iova, size_t size) in __ipu6_mmu_unmap() 417 struct iova *iova; in allocate_trash_buffer() local 637 dma_addr_t iova) in ipu6_mmu_iova_to_phys() 652 void ipu6_mmu_unmap(struct ipu6_mmu_info *mmu_info, unsigned long iova, in ipu6_mmu_unmap() 676 int ipu6_mmu_map(struct ipu6_mmu_info *mmu_info, unsigned long iova, in ipu6_mmu_map() 709 struct iova *iova; in ipu6_mmu_destroy() local
|
| H A D | ipu6-dma.c | 29 static struct vm_info *get_vm_info(struct ipu6_mmu *mmu, dma_addr_t iova) in get_vm_info() 163 struct iova *iova; in ipu6_dma_alloc() local 249 struct iova *iova = find_iova(&mmu->dmap->iovad, PHYS_PFN(dma_handle)); in ipu6_dma_free() local 298 void *addr, dma_addr_t iova, size_t size, in ipu6_dma_mmap() 336 struct iova *iova = find_iova(&mmu->dmap->iovad, in ipu6_dma_unmap_sg() local 381 struct iova *iova; in ipu6_dma_map_sg() local
|
| /linux/drivers/iommu/ |
| H A D | iova.c | 138 iova_insert_rbtree(struct rb_root *root, struct iova *iova, in iova_insert_rbtree() 234 static void free_iova_mem(struct iova *iova) in free_iova_mem() 283 struct iova *iova = to_iova(node); in private_find_iova() local 296 static void remove_iova(struct iova_domain *iovad, struct iova *iova) in remove_iova() 313 struct iova *iova; in find_iova() local 330 __free_iova(struct iova_domain *iovad, struct iova *iova) in __free_iova() 352 struct iova *iova; in free_iova() local 448 struct iova *iova, *tmp; in put_iova_domain() local 462 struct iova *iova = to_iova(node); in __is_range_overlap() local 472 struct iova *iova; in alloc_and_init_iova() local [all …]
|
| H A D | sun50i-iommu.c | 166 static u32 sun50i_iova_get_dte_index(dma_addr_t iova) in sun50i_iova_get_dte_index() 171 static u32 sun50i_iova_get_pte_index(dma_addr_t iova) in sun50i_iova_get_pte_index() 176 static u32 sun50i_iova_get_page_offset(dma_addr_t iova) in sun50i_iova_get_page_offset() 302 unsigned long iova) in sun50i_iommu_zap_iova() 319 unsigned long iova) in sun50i_iommu_zap_ptw_cache() 335 unsigned long iova, size_t size) in sun50i_iommu_zap_range() 407 unsigned long iova, size_t size) in sun50i_iommu_iotlb_sync_map() 557 dma_addr_t iova, gfp_t gfp) in sun50i_dte_get_page_table() 595 static int sun50i_iommu_map(struct iommu_domain *domain, unsigned long iova, in sun50i_iommu_map() 638 static size_t sun50i_iommu_unmap(struct iommu_domain *domain, unsigned long iova, in sun50i_iommu_unmap() [all …]
|
| H A D | tegra-smmu.c | 169 static unsigned int iova_pd_index(unsigned long iova) in iova_pd_index() 174 static unsigned int iova_pt_index(unsigned long iova) in iova_pt_index() 236 unsigned long iova) in smmu_flush_tlb_section() 251 unsigned long iova) in smmu_flush_tlb_group() 559 static void tegra_smmu_set_pde(struct tegra_smmu_as *as, unsigned long iova, in tegra_smmu_set_pde() 580 static u32 *tegra_smmu_pte_offset(struct tegra_pt *pt, unsigned long iova) in tegra_smmu_pte_offset() 585 static u32 *tegra_smmu_pte_lookup(struct tegra_smmu_as *as, unsigned long iova, in tegra_smmu_pte_lookup() 601 static u32 *as_get_pte(struct tegra_smmu_as *as, dma_addr_t iova, in as_get_pte() 637 static void tegra_smmu_pte_get_use(struct tegra_smmu_as *as, unsigned long iova) in tegra_smmu_pte_get_use() 644 static void tegra_smmu_pte_put_use(struct tegra_smmu_as *as, unsigned long iova) in tegra_smmu_pte_put_use() [all …]
|
| H A D | io-pgtable-dart.c | 113 unsigned long iova, phys_addr_t paddr, in dart_init_pte() 161 static int dart_get_index(struct dart_io_pgtable *data, unsigned long iova, int level) in dart_get_index() 167 static int dart_get_last_index(struct dart_io_pgtable *data, unsigned long iova) in dart_get_last_index() 174 static dart_iopte *dart_get_last(struct dart_io_pgtable *data, unsigned long iova) in dart_get_last() 226 static int dart_map_pages(struct io_pgtable_ops *ops, unsigned long iova, in dart_map_pages() 293 static size_t dart_unmap_pages(struct io_pgtable_ops *ops, unsigned long iova, in dart_unmap_pages() 337 unsigned long iova) in dart_iova_to_phys()
|
| H A D | exynos-iommu.c | 101 #define section_offs(iova) (iova & (SECT_SIZE - 1)) argument 103 #define lpage_offs(iova) (iova & (LPAGE_SIZE - 1)) argument 105 #define spage_offs(iova) (iova & (SPAGE_SIZE - 1)) argument 110 static u32 lv1ent_offset(sysmmu_iova_t iova) in lv1ent_offset() 115 static u32 lv2ent_offset(sysmmu_iova_t iova) in lv2ent_offset() 181 static sysmmu_pte_t *section_entry(sysmmu_pte_t *pgtable, sysmmu_iova_t iova) in section_entry() 186 static sysmmu_pte_t *page_entry(sysmmu_pte_t *sent, sysmmu_iova_t iova) in page_entry() 455 sysmmu_iova_t iova, unsigned int num_inv) in __sysmmu_tlb_invalidate_entry() 673 sysmmu_iova_t iova) in sysmmu_tlb_invalidate_flpdcache() 693 sysmmu_iova_t iova, size_t size) in sysmmu_tlb_invalidate_entry() [all …]
|
| H A D | rockchip-iommu.c | 322 static u32 rk_iova_dte_index(dma_addr_t iova) in rk_iova_dte_index() 327 static u32 rk_iova_pte_index(dma_addr_t iova) in rk_iova_pte_index() 332 static u32 rk_iova_page_offset(dma_addr_t iova) in rk_iova_page_offset() 369 dma_addr_t iova; in rk_iommu_zap_lines() local 535 static void log_iova(struct rk_iommu *iommu, int index, dma_addr_t iova) in log_iova() 587 dma_addr_t iova; in rk_iommu_irq() local 652 dma_addr_t iova) in rk_iommu_iova_to_phys() 680 dma_addr_t iova, size_t size) in rk_iommu_zap_iova() 709 dma_addr_t iova, size_t size) in rk_iommu_zap_iova_first_last() 718 dma_addr_t iova) in rk_dte_get_page_table() [all …]
|
| /linux/tools/testing/selftests/iommu/ |
| H A D | iommufd_fail_nth.c | 243 __u64 iova; in TEST_FAIL_NTH() local 313 __u64 iova; in TEST_FAIL_NTH() local 349 __u64 iova; in TEST_FAIL_NTH() local 386 __u64 iova; in TEST_FAIL_NTH() local 431 __u64 iova; in TEST_FAIL_NTH() local 510 __u64 iova; in TEST_FAIL_NTH() local 566 __u64 iova; in TEST_FAIL_NTH() local 639 __u64 iova; in TEST_FAIL_NTH() local
|
| /linux/drivers/staging/media/ipu7/ |
| H A D | ipu7-mmu.c | 240 static void l2_unmap(struct ipu7_mmu_info *mmu_info, unsigned long iova, in l2_unmap() 289 static int l2_map(struct ipu7_mmu_info *mmu_info, unsigned long iova, in l2_map() 378 static int __ipu7_mmu_map(struct ipu7_mmu_info *mmu_info, unsigned long iova, in __ipu7_mmu_map() 392 unsigned long iova, size_t size) in __ipu7_mmu_unmap() 401 struct iova *iova; in allocate_trash_buffer() local 681 dma_addr_t iova) in ipu7_mmu_iova_to_phys() 696 void ipu7_mmu_unmap(struct ipu7_mmu_info *mmu_info, unsigned long iova, in ipu7_mmu_unmap() 721 int ipu7_mmu_map(struct ipu7_mmu_info *mmu_info, unsigned long iova, in ipu7_mmu_map() 754 struct iova *iova; in ipu7_mmu_destroy() local
|
| H A D | ipu7-dma.c | 29 static struct vm_info *get_vm_info(struct ipu7_mmu *mmu, dma_addr_t iova) in get_vm_info() 163 struct iova *iova; in ipu7_dma_alloc() local 249 struct iova *iova = find_iova(&mmu->dmap->iovad, PHYS_PFN(dma_handle)); in ipu7_dma_free() local 298 void *addr, dma_addr_t iova, size_t size, in ipu7_dma_mmap() 336 struct iova *iova = find_iova(&mmu->dmap->iovad, in ipu7_dma_unmap_sg() local 381 struct iova *iova; in ipu7_dma_map_sg() local
|
| /linux/drivers/fpga/ |
| H A D | dfl-afu-dma-region.c | 125 u64 iova, u64 size) in dma_region_check_iova() 245 afu_dma_region_find(struct dfl_feature_dev_data *fdata, u64 iova, u64 size) in afu_dma_region_find() 285 afu_dma_region_find_iova(struct dfl_feature_dev_data *fdata, u64 iova) in afu_dma_region_find_iova() 302 u64 user_addr, u64 length, u64 *iova) in afu_dma_map_region() 381 int afu_dma_unmap_region(struct dfl_feature_dev_data *fdata, u64 iova) in afu_dma_unmap_region()
|
| /linux/drivers/gpu/drm/msm/ |
| H A D | msm_iommu.c | 47 unsigned long iova, phys_addr_t paddr, in calc_pgsize() 101 static int msm_iommu_pagetable_unmap(struct msm_mmu *mmu, u64 iova, in msm_iommu_pagetable_unmap() 134 static int msm_iommu_pagetable_map_prr(struct msm_mmu *mmu, u64 iova, size_t len, int prot) in msm_iommu_pagetable_map_prr() 164 static int msm_iommu_pagetable_map(struct msm_mmu *mmu, u64 iova, in msm_iommu_pagetable_map() 275 msm_iommu_pagetable_walk(struct msm_mmu *mmu, unsigned long iova, uint64_t ptes[4]) in msm_iommu_pagetable_walk() 298 uint64_t iova, size_t len) in msm_iommu_pagetable_prealloc_count() 463 static void msm_iommu_tlb_flush_walk(unsigned long iova, size_t size, in msm_iommu_tlb_flush_walk() 480 unsigned long iova, size_t granule, void *cookie) in msm_iommu_tlb_add_page() 630 unsigned long iova, int flags, void *arg) in msm_gpu_fault_handler() 650 unsigned long iova, int flags, void *arg) in msm_disp_fault_handler() [all …]
|
| /linux/drivers/vfio/ |
| H A D | vfio_iommu_type1.c | 90 dma_addr_t iova; /* Device address */ member 130 dma_addr_t iova; /* Device address */ member 137 dma_addr_t iova; member 355 static inline struct vfio_pfn *vfio_find_vpfn(struct vfio_dma *dma, dma_addr_t iova) in vfio_find_vpfn() 386 static int vfio_add_to_pfn_list(struct vfio_dma *dma, dma_addr_t iova, in vfio_add_to_pfn_list() 410 unsigned long iova) in vfio_iova_get_vfio_pfn() 684 dma_addr_t iova = vaddr - dma->vaddr + dma->iova; in vfio_pin_pages_remote() local 818 static long vfio_unpin_pages_remote(struct vfio_dma *dma, dma_addr_t iova, in vfio_unpin_pages_remote() 877 static int vfio_unpin_page_external(struct vfio_dma *dma, dma_addr_t iova, in vfio_unpin_page_external() 943 dma_addr_t iova; in vfio_iommu_type1_pin_pages() local [all …]
|
| /linux/drivers/media/platform/nvidia/tegra-vde/ |
| H A D | iommu.c | 24 struct iova *iova; in tegra_vde_iommu_map() local 51 void tegra_vde_iommu_unmap(struct tegra_vde *vde, struct iova *iova) in tegra_vde_iommu_unmap() 64 struct iova *iova; in tegra_vde_iommu_init() local
|
| /linux/drivers/vdpa/vdpa_user/ |
| H A D | iova_domain.c | 104 u64 iova, u64 size, u64 paddr) in vduse_domain_map_bounce_page() 143 u64 iova, u64 size) in vduse_domain_unmap_bounce_page() 185 dma_addr_t iova, size_t size, in vduse_domain_bounce() 219 vduse_domain_get_coherent_page(struct vduse_iova_domain *domain, u64 iova) in vduse_domain_get_coherent_page() 240 vduse_domain_get_bounce_page(struct vduse_iova_domain *domain, u64 iova) in vduse_domain_get_bounce_page() 419 dma_addr_t iova, size_t size) in vduse_domain_free_iova() 455 dma_addr_t iova = vduse_domain_alloc_iova(iovad, size, limit); in vduse_domain_map_page() local 502 dma_addr_t iova = vduse_domain_alloc_iova(iovad, size, limit); in vduse_domain_alloc_coherent() local 560 unsigned long iova = vmf->pgoff << PAGE_SHIFT; in vduse_domain_mmap_fault() local
|
| /linux/drivers/staging/media/ipu3/ |
| H A D | ipu3-mmu.c | 154 static inline void address_to_pte_idx(unsigned long iova, u32 *l1pt_idx, in address_to_pte_idx() 210 static int __imgu_mmu_map(struct imgu_mmu *mmu, unsigned long iova, in __imgu_mmu_map() 251 int imgu_mmu_map(struct imgu_mmu_info *info, unsigned long iova, in imgu_mmu_map() 299 size_t imgu_mmu_map_sg(struct imgu_mmu_info *info, unsigned long iova, in imgu_mmu_map_sg() 339 unsigned long iova, size_t size) in __imgu_mmu_unmap() 379 size_t imgu_mmu_unmap(struct imgu_mmu_info *info, unsigned long iova, in imgu_mmu_unmap()
|
| /linux/drivers/iommu/amd/ |
| H A D | io_pgtable_v2.c | 131 static u64 *v2_alloc_pte(int nid, u64 *pgd, unsigned long iova, in v2_alloc_pte() 195 unsigned long iova, unsigned long *page_size) in fetch_pte() 232 static int iommu_v2_map_pages(struct io_pgtable_ops *ops, unsigned long iova, in iommu_v2_map_pages() 285 unsigned long iova, in iommu_v2_unmap_pages() 313 static phys_addr_t iommu_v2_iova_to_phys(struct io_pgtable_ops *ops, unsigned long iova) in iommu_v2_iova_to_phys()
|
| /linux/drivers/gpu/drm/etnaviv/ |
| H A D | etnaviv_mmu.c | 17 unsigned long iova, size_t size) in etnaviv_context_unmap() 34 unsigned long iova, phys_addr_t paddr, in etnaviv_context_map() 61 u32 iova, unsigned int va_len, in etnaviv_iommu_map() 104 static void etnaviv_iommu_unmap(struct etnaviv_iommu_context *context, u32 iova, in etnaviv_iommu_unmap() 279 u32 iova; in etnaviv_iommu_map_gem() local
|