arch/arm/mm/dma-mapping.c
1000
static int __iommu_remove_mapping(struct device *dev, dma_addr_t iova, size_t size)
arch/arm/mm/dma-mapping.c
1008
size = PAGE_ALIGN((iova & ~PAGE_MASK) + size);
arch/arm/mm/dma-mapping.c
1009
iova &= PAGE_MASK;
arch/arm/mm/dma-mapping.c
1011
iommu_unmap(mapping->domain, iova, size);
arch/arm/mm/dma-mapping.c
1012
__free_iova(mapping, iova, size);
arch/arm/mm/dma-mapping.c
1188
dma_addr_t iova, iova_base;
arch/arm/mm/dma-mapping.c
1197
iova_base = iova = __alloc_iova(mapping, size);
arch/arm/mm/dma-mapping.c
1198
if (iova == DMA_MAPPING_ERROR)
arch/arm/mm/dma-mapping.c
1210
ret = iommu_map(mapping->domain, iova, phys, len, prot,
arch/arm/mm/dma-mapping.c
1215
iova += len;
arch/arm/mm/dma-mapping.c
1408
dma_addr_t iova = handle & PAGE_MASK;
arch/arm/mm/dma-mapping.c
1412
if (!iova)
arch/arm/mm/dma-mapping.c
1417
phys_addr_t phys = iommu_iova_to_phys(mapping->domain, iova);
arch/arm/mm/dma-mapping.c
1422
iommu_unmap(mapping->domain, iova, len);
arch/arm/mm/dma-mapping.c
1423
__free_iova(mapping, iova, len);
arch/arm/mm/dma-mapping.c
1430
dma_addr_t iova = handle & PAGE_MASK;
arch/arm/mm/dma-mapping.c
1434
if (dev_dma_coherent(dev) || !iova)
arch/arm/mm/dma-mapping.c
1437
phys = iommu_iova_to_phys(mapping->domain, iova);
arch/arm/mm/dma-mapping.c
1445
dma_addr_t iova = handle & PAGE_MASK;
arch/arm/mm/dma-mapping.c
1449
if (dev_dma_coherent(dev) || !iova)
arch/arm/mm/dma-mapping.c
1452
phys = iommu_iova_to_phys(mapping->domain, iova);
arch/arm/mm/dma-mapping.c
762
dma_addr_t iova;
arch/arm/mm/dma-mapping.c
806
iova = mapping->base + (mapping_size * i);
arch/arm/mm/dma-mapping.c
807
iova += start << PAGE_SHIFT;
arch/arm/mm/dma-mapping.c
809
return iova;
arch/arm/mm/dma-mapping.c
965
dma_addr_t dma_addr, iova;
arch/arm/mm/dma-mapping.c
972
iova = dma_addr;
arch/arm/mm/dma-mapping.c
985
ret = iommu_map(mapping->domain, iova, phys, len,
arch/arm/mm/dma-mapping.c
990
iova += len;
arch/arm/mm/dma-mapping.c
995
iommu_unmap(mapping->domain, dma_addr, iova-dma_addr);
arch/parisc/include/asm/ropes.h
50
dma_addr_t iova;
arch/s390/pci/pci.c
322
void __iomem *iova;
arch/s390/pci/pci.c
324
iova = ioremap((unsigned long) zdev->bars[bar].mio_wt, barsize);
arch/s390/pci/pci.c
325
return iova ? iova + offset : iova;
arch/s390/pci/pci.c
352
void __iomem *iova;
arch/s390/pci/pci.c
354
iova = ioremap((unsigned long) zdev->bars[bar].mio_wb, barsize);
arch/s390/pci/pci.c
355
return iova ? iova + offset : iova;
arch/um/drivers/vfio_user.c
61
.iova = reserved,
drivers/accel/amdxdna/amdxdna_iommu.c
118
struct iova *iova;
drivers/accel/amdxdna/amdxdna_iommu.c
122
iova = amdxdna_iommu_alloc_iova(xdna, size, dma_addr, true);
drivers/accel/amdxdna/amdxdna_iommu.c
123
if (IS_ERR(iova)) {
drivers/accel/amdxdna/amdxdna_iommu.c
124
XDNA_ERR(xdna, "Alloc iova failed, ret %ld", PTR_ERR(iova));
drivers/accel/amdxdna/amdxdna_iommu.c
125
return iova;
drivers/accel/amdxdna/amdxdna_iommu.c
145
__free_iova(&xdna->iovad, iova);
drivers/accel/amdxdna/amdxdna_iommu.c
18
static struct iova *amdxdna_iommu_alloc_iova(struct amdxdna_dev *xdna,
drivers/accel/amdxdna/amdxdna_iommu.c
24
struct iova *iova;
drivers/accel/amdxdna/amdxdna_iommu.c
30
iova = alloc_iova(&xdna->iovad, size >> shift, end >> shift, size_aligned);
drivers/accel/amdxdna/amdxdna_iommu.c
31
if (!iova)
drivers/accel/amdxdna/amdxdna_iommu.c
34
*dma_addr = iova_dma_addr(&xdna->iovad, iova);
drivers/accel/amdxdna/amdxdna_iommu.c
36
return iova;
drivers/accel/amdxdna/amdxdna_iommu.c
44
struct iova *iova;
drivers/accel/amdxdna/amdxdna_iommu.c
67
iova = amdxdna_iommu_alloc_iova(xdna, abo->mem.size, &dma_addr,
drivers/accel/amdxdna/amdxdna_iommu.c
69
if (IS_ERR(iova)) {
drivers/accel/amdxdna/amdxdna_iommu.c
70
XDNA_ERR(xdna, "Alloc iova failed, ret %ld", PTR_ERR(iova));
drivers/accel/amdxdna/amdxdna_iommu.c
71
return PTR_ERR(iova);
drivers/accel/amdxdna/amdxdna_iommu.c
78
__free_iova(&xdna->iovad, iova);
drivers/accel/amdxdna/amdxdna_iommu.c
83
__free_iova(&xdna->iovad, iova);
drivers/crypto/marvell/octeontx2/cn10k_cpt.c
58
lmt_info->iova - lmt_info->align,
drivers/crypto/marvell/octeontx2/cn10k_cpt.c
68
dma_addr_t iova;
drivers/crypto/marvell/octeontx2/cn10k_cpt.c
70
lmt_info->base = dma_alloc_attrs(&pdev->dev, size, &iova, GFP_KERNEL,
drivers/crypto/marvell/octeontx2/cn10k_cpt.c
75
align_iova = ALIGN((u64)iova, LMTLINE_ALIGN);
drivers/crypto/marvell/octeontx2/cn10k_cpt.c
76
lmt_info->iova = align_iova;
drivers/crypto/marvell/octeontx2/cn10k_cpt.c
77
lmt_info->align = align_iova - iova;
drivers/crypto/marvell/octeontx2/otx2_cpt_mbox_common.c
278
req->lmt_iova = lfs->lmt_info.iova;
drivers/crypto/marvell/octeontx2/otx2_cptlf.h
112
dma_addr_t iova;
drivers/crypto/tegra/tegra-se-main.c
128
cmdbuf->addr = dma_alloc_attrs(dev, size, &cmdbuf->iova,
drivers/crypto/tegra/tegra-se-main.c
30
cmdbuf->iova, 0);
drivers/crypto/tegra/tegra-se-main.c
65
cmdbuf->iova, cmdbuf->words * 4);
drivers/crypto/tegra/tegra-se.h
439
dma_addr_t iova;
drivers/fpga/dfl-afu-dma-region.c
125
u64 iova, u64 size)
drivers/fpga/dfl-afu-dma-region.c
127
if (!size && region->iova != iova)
drivers/fpga/dfl-afu-dma-region.c
130
return (region->iova <= iova) &&
drivers/fpga/dfl-afu-dma-region.c
131
(region->length + region->iova >= iova + size);
drivers/fpga/dfl-afu-dma-region.c
150
(unsigned long long)region->iova);
drivers/fpga/dfl-afu-dma-region.c
161
if (dma_region_check_iova(this, region->iova, region->length))
drivers/fpga/dfl-afu-dma-region.c
164
if (region->iova < this->iova)
drivers/fpga/dfl-afu-dma-region.c
166
else if (region->iova > this->iova)
drivers/fpga/dfl-afu-dma-region.c
191
(unsigned long long)region->iova);
drivers/fpga/dfl-afu-dma-region.c
213
(unsigned long long)region->iova);
drivers/fpga/dfl-afu-dma-region.c
217
if (region->iova)
drivers/fpga/dfl-afu-dma-region.c
219
region->iova, region->length,
drivers/fpga/dfl-afu-dma-region.c
245
afu_dma_region_find(struct dfl_feature_dev_data *fdata, u64 iova, u64 size)
drivers/fpga/dfl-afu-dma-region.c
256
if (dma_region_check_iova(region, iova, size)) {
drivers/fpga/dfl-afu-dma-region.c
258
(unsigned long long)region->iova);
drivers/fpga/dfl-afu-dma-region.c
262
if (iova < region->iova)
drivers/fpga/dfl-afu-dma-region.c
264
else if (iova > region->iova)
drivers/fpga/dfl-afu-dma-region.c
272
(unsigned long long)iova, (unsigned long long)size);
drivers/fpga/dfl-afu-dma-region.c
285
afu_dma_region_find_iova(struct dfl_feature_dev_data *fdata, u64 iova)
drivers/fpga/dfl-afu-dma-region.c
287
return afu_dma_region_find(fdata, iova, 0);
drivers/fpga/dfl-afu-dma-region.c
302
u64 user_addr, u64 length, u64 *iova)
drivers/fpga/dfl-afu-dma-region.c
341
region->iova = dma_map_page(dfl_fpga_fdata_to_parent(fdata),
drivers/fpga/dfl-afu-dma-region.c
345
if (dma_mapping_error(dfl_fpga_fdata_to_parent(fdata), region->iova)) {
drivers/fpga/dfl-afu-dma-region.c
351
*iova = region->iova;
drivers/fpga/dfl-afu-dma-region.c
365
region->iova, region->length, DMA_BIDIRECTIONAL);
drivers/fpga/dfl-afu-dma-region.c
381
int afu_dma_unmap_region(struct dfl_feature_dev_data *fdata, u64 iova)
drivers/fpga/dfl-afu-dma-region.c
386
region = afu_dma_region_find_iova(fdata, iova);
drivers/fpga/dfl-afu-dma-region.c
401
region->iova, region->length, DMA_BIDIRECTIONAL);
drivers/fpga/dfl-afu-main.c
718
minsz = offsetofend(struct dfl_fpga_port_dma_map, iova);
drivers/fpga/dfl-afu-main.c
729
ret = afu_dma_map_region(fdata, map.user_addr, map.length, &map.iova);
drivers/fpga/dfl-afu-main.c
734
afu_dma_unmap_region(fdata, map.iova);
drivers/fpga/dfl-afu-main.c
741
(unsigned long long)map.iova);
drivers/fpga/dfl-afu-main.c
752
minsz = offsetofend(struct dfl_fpga_port_dma_unmap, iova);
drivers/fpga/dfl-afu-main.c
760
return afu_dma_unmap_region(fdata, unmap.iova);
drivers/fpga/dfl-afu.h
100
u64 iova, u64 size);
drivers/fpga/dfl-afu.h
56
u64 iova;
drivers/fpga/dfl-afu.h
96
u64 user_addr, u64 length, u64 *iova);
drivers/fpga/dfl-afu.h
97
int afu_dma_unmap_region(struct dfl_feature_dev_data *fdata, u64 iova);
drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
138
return mapping->iova + buf->suballoc_offset;
drivers/gpu/drm/etnaviv/etnaviv_dump.c
109
void *ptr, size_t size, u64 iova)
drivers/gpu/drm/etnaviv/etnaviv_dump.c
113
iter->hdr->iova = cpu_to_le64(iova);
drivers/gpu/drm/etnaviv/etnaviv_dump.c
220
iter.hdr->iova = cpu_to_le64(vram->iova);
drivers/gpu/drm/etnaviv/etnaviv_dump.h
27
__le64 iova;
drivers/gpu/drm/etnaviv/etnaviv_gem.c
262
if (va && mapping->iova != va) {
drivers/gpu/drm/etnaviv/etnaviv_gem.h
31
u32 iova;
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
228
submit->bos[i].va != mapping->iova) {
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
303
ptr[off] = bo->mapping->iova + r->reloc_offset;
drivers/gpu/drm/etnaviv/etnaviv_iommu.c
48
unsigned long iova, phys_addr_t paddr,
drivers/gpu/drm/etnaviv/etnaviv_iommu.c
52
unsigned int index = (iova - GPU_MEM_START) / SZ_4K;
drivers/gpu/drm/etnaviv/etnaviv_iommu.c
63
unsigned long iova, size_t size)
drivers/gpu/drm/etnaviv/etnaviv_iommu.c
66
unsigned int index = (iova - GPU_MEM_START) / SZ_4K;
drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c
109
mtlb_entry = (iova & MMUv2_MTLB_MASK) >> MMUv2_MTLB_SHIFT;
drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c
110
stlb_entry = (iova & MMUv2_STLB_MASK) >> MMUv2_STLB_SHIFT;
drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c
122
unsigned long iova, size_t size)
drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c
130
mtlb_entry = (iova & MMUv2_MTLB_MASK) >> MMUv2_MTLB_SHIFT;
drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c
131
stlb_entry = (iova & MMUv2_STLB_MASK) >> MMUv2_STLB_SHIFT;
drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c
93
unsigned long iova, phys_addr_t paddr,
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
102
etnaviv_context_unmap(context, iova, da - iova);
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
106
static void etnaviv_iommu_unmap(struct etnaviv_iommu_context *context, u32 iova,
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
109
etnaviv_context_unmap(context, iova, len);
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
19
unsigned long iova, size_t size)
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
25
unmapped_page = context->global->ops->unmap(context, iova,
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
281
u32 iova;
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
283
iova = sg_dma_address(sgt->sgl) - memory_base;
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
284
if (iova < 0x80000000 - sg_dma_len(sgt->sgl)) {
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
285
mapping->iova = iova;
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
30
iova += unmapped_page;
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
302
mapping->iova = node->start;
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
36
unsigned long iova, phys_addr_t paddr,
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
376
ctx->cmdbuf_mapping.iova > 0x80000000) {
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
39
unsigned long orig_iova = iova;
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
417
mapping->iova = paddr - memory_base;
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
428
mapping->iova = node->start;
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
45
ret = context->global->ops->map(context, iova, paddr, pgsize,
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
50
iova += pgsize;
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
63
u32 iova, unsigned int va_len,
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
67
unsigned int da = iova;
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
81
if (!IS_ALIGNED(iova | pa | bytes, SZ_4K)) {
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
84
iova, &pa, bytes);
drivers/gpu/drm/etnaviv/etnaviv_mmu.h
25
int (*map)(struct etnaviv_iommu_context *context, unsigned long iova,
drivers/gpu/drm/etnaviv/etnaviv_mmu.h
27
size_t (*unmap)(struct etnaviv_iommu_context *context, unsigned long iova,
drivers/gpu/drm/i915/gvt/kvmgt.c
621
static void intel_vgpu_dma_unmap(struct vfio_device *vfio_dev, u64 iova,
drivers/gpu/drm/i915/gvt/kvmgt.c
626
u64 iov_pfn = iova >> PAGE_SHIFT;
drivers/gpu/drm/msm/adreno/a2xx_gpu.c
222
gpu_write(gpu, REG_AXXX_CP_RB_BASE, lower_32_bits(gpu->rb[0]->iova));
drivers/gpu/drm/msm/adreno/a2xx_gpu.c
30
OUT_RING(ring, lower_32_bits(submit->cmd[i].iova));
drivers/gpu/drm/msm/adreno/a2xx_gpummu.c
31
static int a2xx_gpummu_map(struct msm_mmu *mmu, uint64_t iova,
drivers/gpu/drm/msm/adreno/a2xx_gpummu.c
36
unsigned idx = (iova - GPUMMU_VA_START) / GPUMMU_PAGE_SIZE;
drivers/gpu/drm/msm/adreno/a2xx_gpummu.c
62
static int a2xx_gpummu_unmap(struct msm_mmu *mmu, uint64_t iova, size_t len)
drivers/gpu/drm/msm/adreno/a2xx_gpummu.c
65
unsigned idx = (iova - GPUMMU_VA_START) / GPUMMU_PAGE_SIZE;
drivers/gpu/drm/msm/adreno/a3xx_gpu.c
283
gpu_write(gpu, REG_AXXX_CP_RB_BASE, lower_32_bits(gpu->rb[0]->iova));
drivers/gpu/drm/msm/adreno/a3xx_gpu.c
48
OUT_RING(ring, lower_32_bits(submit->cmd[i].iova));
drivers/gpu/drm/msm/adreno/a4xx_gpu.c
325
gpu_write(gpu, REG_A4XX_CP_RB_BASE, lower_32_bits(gpu->rb[0]->iova));
drivers/gpu/drm/msm/adreno/a4xx_gpu.c
42
OUT_RING(ring, lower_32_bits(submit->cmd[i].iova));
drivers/gpu/drm/msm/adreno/a5xx_gpu.c
1104
static int a5xx_fault_handler(void *arg, unsigned long iova, int flags, void *data)
drivers/gpu/drm/msm/adreno/a5xx_gpu.c
1119
return adreno_fault_handler(gpu, iova, flags, info, block, scratch);
drivers/gpu/drm/msm/adreno/a5xx_gpu.c
1440
u64 iova;
drivers/gpu/drm/msm/adreno/a5xx_gpu.c
1453
&dumper->bo, &dumper->iova);
drivers/gpu/drm/msm/adreno/a5xx_gpu.c
1469
gpu_write64(gpu, REG_A5XX_CP_CRASH_SCRIPT_BASE_LO, dumper->iova);
drivers/gpu/drm/msm/adreno/a5xx_gpu.c
1519
offset = dumper.iova + (256 * SZ_1K);
drivers/gpu/drm/msm/adreno/a5xx_gpu.c
181
OUT_RING(ring, lower_32_bits(submit->cmd[i].iova));
drivers/gpu/drm/msm/adreno/a5xx_gpu.c
182
OUT_RING(ring, upper_32_bits(submit->cmd[i].iova));
drivers/gpu/drm/msm/adreno/a5xx_gpu.c
930
gpu_write64(gpu, REG_A5XX_CP_RB_BASE, gpu->rb[0]->iova);
drivers/gpu/drm/msm/adreno/a5xx_preempt.c
235
a5xx_gpu->preempt[i]->rbase = gpu->rb[i]->iova;
drivers/gpu/drm/msm/adreno/a5xx_preempt.c
254
u64 iova = 0, counters_iova = 0;
drivers/gpu/drm/msm/adreno/a5xx_preempt.c
258
MSM_BO_WC | MSM_BO_MAP_PRIV, gpu->vm, &bo, &iova);
drivers/gpu/drm/msm/adreno/a5xx_preempt.c
277
a5xx_gpu->preempt_iova[ring->id] = iova;
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
1016
(gmu->log.iova & GENMASK(31, 12)) |
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
1021
(gmu->log.iova & GENMASK(31, 12)) |
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
1027
gmu->log.iova | (gmu->log.size / SZ_4K - 1));
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
1528
size_t size, u64 iova, const char *name)
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
1537
if (!iova) {
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
1543
range_start = iova;
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
1544
range_end = iova + size;
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
1553
ret = msm_gem_get_and_pin_iova_range(bo->obj, gmu->vm, &bo->iova,
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
853
if (!in_range(blk->addr, bo->iova, bo->size))
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
856
memcpy(bo->virt + blk->addr - bo->iova, blk->data, blk->size);
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
973
gmu_write(gmu, REG_A6XX_GMU_HFI_QTBL_ADDR, gmu->hfi.iova);
drivers/gpu/drm/msm/adreno/a6xx_gmu.h
20
u64 iova;
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
1438
gpu_write64(gpu, REG_A6XX_CP_RB_BASE, gpu->rb[0]->iova);
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
1752
static int a6xx_fault_handler(void *arg, unsigned long iova, int flags, void *data)
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
1768
return adreno_fault_handler(gpu, iova, flags, info, block, scratch);
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
217
u64 iova)
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
223
OUT_RING(ring, lower_32_bits(iova));
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
224
OUT_RING(ring, upper_32_bits(iova));
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
395
OUT_RING(ring, lower_32_bits(submit->cmd[i].iova));
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
396
OUT_RING(ring, upper_32_bits(submit->cmd[i].iova));
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
538
OUT_RING(ring, lower_32_bits(submit->cmd[i].iova));
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
539
OUT_RING(ring, upper_32_bits(submit->cmd[i].iova));
drivers/gpu/drm/msm/adreno/a6xx_gpu.h
334
int a8xx_fault_handler(void *arg, unsigned long iova, int flags, void *data);
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
1013
u64 out = dumper->iova + A6XX_CD_DATA_OFFSET;
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
1051
u64 out = dumper->iova + A6XX_CD_DATA_OFFSET;
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
1093
u64 out = dumper->iova + A6XX_CD_DATA_OFFSET;
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
1276
snapshot->iova = bo->iova;
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
136
&dumper->bo, &dumper->iova);
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
161
gpu_write64(gpu, REG_A6XX_CP_CRASH_DUMP_SCRIPT_BASE, dumper->iova);
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
1995
drm_printf(p, " iova: 0x%016llx\n", gmu_log->iova);
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
2006
drm_printf(p, " iova: 0x%016llx\n", gmu_hfi->iova);
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
2023
drm_printf(p, " iova: 0x%016llx\n", gmu_debug->iova);
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
569
u64 out = dumper->iova + A6XX_CD_DATA_OFFSET;
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
615
u64 out = dumper->iova + A6XX_CD_DATA_OFFSET;
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
716
u64 out = dumper->iova + A6XX_CD_DATA_OFFSET;
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
775
u64 out = dumper->iova + A6XX_CD_DATA_OFFSET;
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
874
u64 out = dumper->iova + A6XX_CD_DATA_OFFSET;
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
909
u64 out = dumper->iova + A6XX_CD_DATA_OFFSET;
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
94
u64 iova;
drivers/gpu/drm/msm/adreno/a6xx_hfi.c
1033
struct a6xx_hfi_queue_header *header, void *virt, u64 iova,
drivers/gpu/drm/msm/adreno/a6xx_hfi.c
1045
header->iova = iova;
drivers/gpu/drm/msm/adreno/a6xx_hfi.c
1087
hfi->iova + offset, 0);
drivers/gpu/drm/msm/adreno/a6xx_hfi.c
1093
hfi->iova + offset, gmu->legacy ? 4 : 1);
drivers/gpu/drm/msm/adreno/a6xx_hfi.c
1099
hfi->iova + offset, gmu->legacy ? 5 : 2);
drivers/gpu/drm/msm/adreno/a6xx_hfi.c
239
msg.dbg_buffer_addr = (u32) gmu->debug.iova;
drivers/gpu/drm/msm/adreno/a6xx_hfi.h
20
u32 iova;
drivers/gpu/drm/msm/adreno/a6xx_preempt.c
148
record_ptr->rbase = gpu->rb[i]->iova;
drivers/gpu/drm/msm/adreno/a6xx_preempt.c
286
u64 iova = 0;
drivers/gpu/drm/msm/adreno/a6xx_preempt.c
292
MSM_BO_WC | MSM_BO_MAP_PRIV, gpu->vm, &bo, &iova);
drivers/gpu/drm/msm/adreno/a6xx_preempt.c
302
a6xx_gpu->preempt_iova[ring->id] = iova;
drivers/gpu/drm/msm/adreno/a6xx_preempt.c
310
gpu->vm, &bo, &iova);
drivers/gpu/drm/msm/adreno/a6xx_preempt.c
320
a6xx_gpu->preempt_smmu_iova[ring->id] = iova;
drivers/gpu/drm/msm/adreno/a6xx_preempt.c
339
record_ptr->rbase = ring->iova;
drivers/gpu/drm/msm/adreno/a8xx_gpu.c
1003
int a8xx_fault_handler(void *arg, unsigned long iova, int flags, void *data)
drivers/gpu/drm/msm/adreno/a8xx_gpu.c
1019
return adreno_fault_handler(gpu, iova, flags, info, block, scratch);
drivers/gpu/drm/msm/adreno/a8xx_gpu.c
761
gpu_write64(gpu, REG_A6XX_CP_RB_BASE, gpu->rb[0]->iova);
drivers/gpu/drm/msm/adreno/a8xx_preempt.c
129
record_ptr->rbase = gpu->rb[i]->iova;
drivers/gpu/drm/msm/adreno/adreno_gpu.c
1007
state->bos[i].iova);
drivers/gpu/drm/msm/adreno/adreno_gpu.c
283
int adreno_fault_handler(struct msm_gpu *gpu, unsigned long iova, int flags,
drivers/gpu/drm/msm/adreno/adreno_gpu.c
315
iova, flags,
drivers/gpu/drm/msm/adreno/adreno_gpu.c
329
info->ttbr0, iova,
drivers/gpu/drm/msm/adreno/adreno_gpu.c
346
fault_info.iova = iova;
drivers/gpu/drm/msm/adreno/adreno_gpu.c
636
const struct firmware *fw, u64 *iova)
drivers/gpu/drm/msm/adreno/adreno_gpu.c
642
MSM_BO_WC | MSM_BO_GPU_READONLY, gpu->vm, &bo, iova);
drivers/gpu/drm/msm/adreno/adreno_gpu.c
774
state->ring[i].iova = gpu->rb[i]->iova;
drivers/gpu/drm/msm/adreno/adreno_gpu.c
959
drm_printf(p, " - iova=%.16lx\n", info->iova);
drivers/gpu/drm/msm/adreno/adreno_gpu.c
980
e->op, e->queue_id, e->iova,
drivers/gpu/drm/msm/adreno/adreno_gpu.c
981
e->iova + e->range);
drivers/gpu/drm/msm/adreno/adreno_gpu.c
991
drm_printf(p, " iova: 0x%016llx\n", state->ring[i].iova);
drivers/gpu/drm/msm/adreno/adreno_gpu.h
615
const struct firmware *fw, u64 *iova);
drivers/gpu/drm/msm/adreno/adreno_gpu.h
659
int adreno_fault_handler(struct msm_gpu *gpu, unsigned long iova, int flags,
drivers/gpu/drm/msm/adreno/adreno_gpu.h
81
int (*mmu_fault_handler)(void *arg, unsigned long iova, int flags, void *data);
drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c
366
uint64_t iova = mdp4_crtc->cursor.next_iova;
drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c
371
msm_gem_get_and_pin_iova(next_bo, kms->vm, &iova);
drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c
377
mdp4_write(mdp4_kms, REG_MDP4_DMA_CURSOR_BASE(dma), iova);
drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c
412
uint64_t iova;
drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c
429
ret = msm_gem_get_and_pin_iova(cursor_bo, kms->vm, &iova);
drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c
433
iova = 0;
drivers/gpu/drm/msm/disp/mdp4/mdp4_crtc.c
439
mdp4_crtc->cursor.next_iova = iova;
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
553
if (mdp5_crtc->cursor.iova) {
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
62
uint64_t iova;
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
940
mdp5_crtc->cursor.iova);
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
987
mdp5_crtc->cursor.iova = 0;
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c
997
&mdp5_crtc->cursor.iova);
drivers/gpu/drm/msm/dsi/dsi.h
115
int dsi_dma_base_get_6g(struct msm_dsi_host *msm_host, uint64_t *iova);
drivers/gpu/drm/msm/dsi/dsi.h
116
int dsi_dma_base_get_v2(struct msm_dsi_host *msm_host, uint64_t *iova);
drivers/gpu/drm/msm/dsi/dsi_cfg.h
61
int (*dma_base_get)(struct msm_dsi_host *msm_host, uint64_t *iova);
drivers/gpu/drm/msm/dsi/dsi_host.c
1242
uint64_t iova;
drivers/gpu/drm/msm/dsi/dsi_host.c
1249
&msm_host->tx_gem_obj, &iova);
drivers/gpu/drm/msm/msm_drv.c
421
uint64_t *iova)
drivers/gpu/drm/msm/msm_drv.c
439
return msm_gem_get_iova(obj, msm_context_vm(dev, ctx), iova);
drivers/gpu/drm/msm/msm_drv.c
444
uint64_t iova)
drivers/gpu/drm/msm/msm_drv.c
463
return msm_gem_set_iova(obj, vm, iova);
drivers/gpu/drm/msm/msm_fb.c
117
memset(msm_fb->iova, 0, sizeof(msm_fb->iova));
drivers/gpu/drm/msm/msm_fb.c
128
return msm_fb->iova[plane] + fb->offsets[plane];
drivers/gpu/drm/msm/msm_fb.c
27
uint64_t iova[DRM_FORMAT_MAX_PLANES];
drivers/gpu/drm/msm/msm_fb.c
94
ret = msm_gem_get_and_pin_iova(fb->obj[i], vm, &msm_fb->iova[i]);
drivers/gpu/drm/msm/msm_fb.c
96
fb->base.id, i, msm_fb->iova[i], ret);
drivers/gpu/drm/msm/msm_gem.c
1340
uint64_t *iova)
drivers/gpu/drm/msm/msm_gem.c
1349
if (iova) {
drivers/gpu/drm/msm/msm_gem.c
1350
ret = msm_gem_get_and_pin_iova(obj, vm, iova);
drivers/gpu/drm/msm/msm_gem.c
527
struct drm_gpuvm *vm, uint64_t *iova,
drivers/gpu/drm/msm/msm_gem.c
544
*iova = vma->va.addr;
drivers/gpu/drm/msm/msm_gem.c
556
struct drm_gpuvm *vm, uint64_t *iova,
drivers/gpu/drm/msm/msm_gem.c
563
ret = get_and_pin_iova_range_locked(obj, vm, iova, range_start, range_end);
drivers/gpu/drm/msm/msm_gem.c
571
uint64_t *iova)
drivers/gpu/drm/msm/msm_gem.c
573
return msm_gem_get_and_pin_iova_range(obj, vm, iova, 0, U64_MAX);
drivers/gpu/drm/msm/msm_gem.c
581
uint64_t *iova)
drivers/gpu/drm/msm/msm_gem.c
592
*iova = vma->va.addr;
drivers/gpu/drm/msm/msm_gem.c
621
struct drm_gpuvm *vm, uint64_t iova)
drivers/gpu/drm/msm/msm_gem.c
627
if (!iova) {
drivers/gpu/drm/msm/msm_gem.c
631
vma = get_vma_locked(obj, vm, iova, iova + obj->size);
drivers/gpu/drm/msm/msm_gem.c
634
} else if (GEM_WARN_ON(vma->va.addr != iova)) {
drivers/gpu/drm/msm/msm_gem.h
272
uint64_t *iova);
drivers/gpu/drm/msm/msm_gem.h
274
uint64_t iova);
drivers/gpu/drm/msm/msm_gem.h
276
struct drm_gpuvm *vm, uint64_t *iova,
drivers/gpu/drm/msm/msm_gem.h
279
uint64_t *iova);
drivers/gpu/drm/msm/msm_gem.h
302
uint64_t *iova);
drivers/gpu/drm/msm/msm_gem.h
36
uint64_t iova;
drivers/gpu/drm/msm/msm_gem.h
463
uint64_t iova;
drivers/gpu/drm/msm/msm_gem.h
476
uint64_t iova;
drivers/gpu/drm/msm/msm_gem_submit.c
240
submit->cmd[i].iova = submit_cmd.iova;
drivers/gpu/drm/msm/msm_gem_submit.c
374
submit->bos[i].iova = vma->va.addr;
drivers/gpu/drm/msm/msm_gem_submit.c
440
struct drm_gem_object **obj, uint64_t *iova)
drivers/gpu/drm/msm/msm_gem_submit.c
449
if (iova)
drivers/gpu/drm/msm/msm_gem_submit.c
450
*iova = submit->bos[idx].iova;
drivers/gpu/drm/msm/msm_gem_submit.c
480
uint64_t iova;
drivers/gpu/drm/msm/msm_gem_submit.c
497
ret = submit_bo(submit, submit_reloc.reloc_idx, NULL, &iova);
drivers/gpu/drm/msm/msm_gem_submit.c
501
iova += submit_reloc.reloc_offset;
drivers/gpu/drm/msm/msm_gem_submit.c
504
iova >>= -submit_reloc.shift;
drivers/gpu/drm/msm/msm_gem_submit.c
506
iova <<= submit_reloc.shift;
drivers/gpu/drm/msm/msm_gem_submit.c
508
ptr[off] = iova | submit_reloc.or;
drivers/gpu/drm/msm/msm_gem_submit.c
693
uint64_t iova;
drivers/gpu/drm/msm/msm_gem_submit.c
695
ret = submit_bo(submit, submit->cmd[i].idx, &obj, &iova);
drivers/gpu/drm/msm/msm_gem_submit.c
706
submit->cmd[i].iova = iova + (submit->cmd[i].offset * 4);
drivers/gpu/drm/msm/msm_gem_vma.c
1002
job->ops[i].iova = op->iova;
drivers/gpu/drm/msm/msm_gem_vma.c
1009
if (invalid_alignment(op->iova))
drivers/gpu/drm/msm/msm_gem_vma.c
1010
ret = UERR(EINVAL, dev, "invalid address: %016llx\n", op->iova);
drivers/gpu/drm/msm/msm_gem_vma.c
1018
if (!drm_gpuvm_range_valid(job->vm, op->iova, op->range))
drivers/gpu/drm/msm/msm_gem_vma.c
1019
ret = UERR(EINVAL, dev, "invalid range: %016llx, %016llx\n", op->iova, op->range);
drivers/gpu/drm/msm/msm_gem_vma.c
1155
uint64_t start_iova = first->iova;
drivers/gpu/drm/msm/msm_gem_vma.c
1156
uint64_t end_iova = last->iova + last->range;
drivers/gpu/drm/msm/msm_gem_vma.c
1170
return ((first->iova + first->range) & pte_mask) == (next->iova & pte_mask);
drivers/gpu/drm/msm/msm_gem_vma.c
1252
op->iova,
drivers/gpu/drm/msm/msm_gem_vma.c
1258
.map.va.addr = op->iova,
drivers/gpu/drm/msm/msm_gem_vma.c
1367
ret = drm_gpuvm_sm_unmap(job->vm, &arg, op->iova,
drivers/gpu/drm/msm/msm_gem_vma.c
1376
.map.va.addr = op->iova,
drivers/gpu/drm/msm/msm_gem_vma.c
144
uint64_t iova;
drivers/gpu/drm/msm/msm_gem_vma.c
217
e->op, e->queue_id, e->iova,
drivers/gpu/drm/msm/msm_gem_vma.c
218
e->iova + e->range);
drivers/gpu/drm/msm/msm_gem_vma.c
225
vm_log(struct msm_gem_vm *vm, const char *op, uint64_t iova, uint64_t range, int queue_id)
drivers/gpu/drm/msm/msm_gem_vma.c
232
vm_dbg("%s:%p:%d: %016llx %016llx", op, vm, queue_id, iova, iova + range);
drivers/gpu/drm/msm/msm_gem_vma.c
239
vm->log[idx].iova = iova;
drivers/gpu/drm/msm/msm_gem_vma.c
253
vm_log(vm, reason, op->iova, op->range, op->queue_id);
drivers/gpu/drm/msm/msm_gem_vma.c
255
vm->mmu->funcs->unmap(vm->mmu, op->iova, op->range);
drivers/gpu/drm/msm/msm_gem_vma.c
261
vm_log(vm, "map", op->iova, op->range, op->queue_id);
drivers/gpu/drm/msm/msm_gem_vma.c
263
return vm->mmu->funcs->map(vm->mmu, op->iova, op->sgt, op->offset,
drivers/gpu/drm/msm/msm_gem_vma.c
286
.iova = vma->va.addr,
drivers/gpu/drm/msm/msm_gem_vma.c
29
uint64_t iova;
drivers/gpu/drm/msm/msm_gem_vma.c
328
.iova = vma->va.addr,
drivers/gpu/drm/msm/msm_gem_vma.c
52
uint64_t iova;
drivers/gpu/drm/msm/msm_gem_vma.c
527
.iova = vma->va.addr,
drivers/gpu/drm/msm/msm_gem_vma.c
568
.iova = unmap_start,
drivers/gpu/drm/msm/msm_gem_vma.c
654
(vma->va.addr == arg->op->iova) &&
drivers/gpu/drm/msm/msm_gem_vma.c
675
.iova = vma->va.addr,
drivers/gpu/drm/msm/msm_gpu.c
222
struct drm_gem_object *obj, u64 iova,
drivers/gpu/drm/msm/msm_gpu.c
231
state_bo->iova = iova;
drivers/gpu/drm/msm/msm_gpu.c
312
msm_gpu_crashstate_get_bo(state, obj, submit->bos[i].iova,
drivers/gpu/drm/msm/msm_gpu.c
394
msm_iommu_pagetable_walk(mmu, info->iova, info->ptes);
drivers/gpu/drm/msm/msm_gpu.h
109
unsigned long iova;
drivers/gpu/drm/msm/msm_gpu.h
608
u64 iova;
drivers/gpu/drm/msm/msm_gpu.h
621
u64 iova;
drivers/gpu/drm/msm/msm_iommu.c
101
static int msm_iommu_pagetable_unmap(struct msm_mmu *mmu, u64 iova,
drivers/gpu/drm/msm/msm_iommu.c
112
pgsize = calc_pgsize(pagetable, iova, iova, size, &count);
drivers/gpu/drm/msm/msm_iommu.c
114
unmapped = ops->unmap_pages(ops, iova, pgsize, count, NULL);
drivers/gpu/drm/msm/msm_iommu.c
125
iova += unmapped;
drivers/gpu/drm/msm/msm_iommu.c
134
static int msm_iommu_pagetable_map_prr(struct msm_mmu *mmu, u64 iova, size_t len, int prot)
drivers/gpu/drm/msm/msm_iommu.c
140
u64 addr = iova;
drivers/gpu/drm/msm/msm_iommu.c
156
msm_iommu_pagetable_unmap(mmu, iova, addr - iova);
drivers/gpu/drm/msm/msm_iommu.c
164
static int msm_iommu_pagetable_map(struct msm_mmu *mmu, u64 iova,
drivers/gpu/drm/msm/msm_iommu.c
171
u64 addr = iova;
drivers/gpu/drm/msm/msm_iommu.c
175
return msm_iommu_pagetable_map_prr(mmu, iova, len, prot);
drivers/gpu/drm/msm/msm_iommu.c
212
msm_iommu_pagetable_unmap(mmu, iova, addr - iova);
drivers/gpu/drm/msm/msm_iommu.c
275
msm_iommu_pagetable_walk(struct msm_mmu *mmu, unsigned long iova, uint64_t ptes[4])
drivers/gpu/drm/msm/msm_iommu.c
288
pagetable->pgtbl_ops->pgtable_walk(pagetable->pgtbl_ops, iova, &wd);
drivers/gpu/drm/msm/msm_iommu.c
298
uint64_t iova, size_t len)
drivers/gpu/drm/msm/msm_iommu.c
315
pt_count = ((ALIGN(iova + len, 1ull << 39) - ALIGN_DOWN(iova, 1ull << 39)) >> 39) +
drivers/gpu/drm/msm/msm_iommu.c
316
((ALIGN(iova + len, 1ull << 30) - ALIGN_DOWN(iova, 1ull << 30)) >> 30) +
drivers/gpu/drm/msm/msm_iommu.c
317
((ALIGN(iova + len, 1ull << 21) - ALIGN_DOWN(iova, 1ull << 21)) >> 21);
drivers/gpu/drm/msm/msm_iommu.c
466
static void msm_iommu_tlb_flush_walk(unsigned long iova, size_t size,
drivers/gpu/drm/msm/msm_iommu.c
47
unsigned long iova, phys_addr_t paddr,
drivers/gpu/drm/msm/msm_iommu.c
477
pagetable->tlb->tlb_flush_walk(iova, size, granule, (void *)adreno_smmu->cookie);
drivers/gpu/drm/msm/msm_iommu.c
483
unsigned long iova, size_t granule, void *cookie)
drivers/gpu/drm/msm/msm_iommu.c
494
unsigned long iova, int flags, void *arg);
drivers/gpu/drm/msm/msm_iommu.c
53
unsigned long addr_merge = paddr | iova;
drivers/gpu/drm/msm/msm_iommu.c
633
unsigned long iova, int flags, void *arg)
drivers/gpu/drm/msm/msm_iommu.c
645
return iommu->base.handler(iommu->base.arg, iova, flags, ptr);
drivers/gpu/drm/msm/msm_iommu.c
647
pr_warn_ratelimited("*** fault: iova=%16lx, flags=%d\n", iova, flags);
drivers/gpu/drm/msm/msm_iommu.c
653
unsigned long iova, int flags, void *arg)
drivers/gpu/drm/msm/msm_iommu.c
658
return iommu->base.handler(iommu->base.arg, iova, flags, NULL);
drivers/gpu/drm/msm/msm_iommu.c
678
static int msm_iommu_map(struct msm_mmu *mmu, uint64_t iova,
drivers/gpu/drm/msm/msm_iommu.c
688
if (iova & BIT_ULL(48))
drivers/gpu/drm/msm/msm_iommu.c
689
iova |= GENMASK_ULL(63, 49);
drivers/gpu/drm/msm/msm_iommu.c
691
ret = iommu_map_sgtable(iommu->domain, iova, sgt, prot);
drivers/gpu/drm/msm/msm_iommu.c
698
static int msm_iommu_unmap(struct msm_mmu *mmu, uint64_t iova, size_t len)
drivers/gpu/drm/msm/msm_iommu.c
702
if (iova & BIT_ULL(48))
drivers/gpu/drm/msm/msm_iommu.c
703
iova |= GENMASK_ULL(63, 49);
drivers/gpu/drm/msm/msm_iommu.c
705
iommu_unmap(iommu->domain, iova, len);
drivers/gpu/drm/msm/msm_iommu.c
83
if ((iova ^ paddr) & (pgsize_next - 1))
drivers/gpu/drm/msm/msm_kms.c
168
static int msm_kms_fault_handler(void *arg, unsigned long iova, int flags, void *data)
drivers/gpu/drm/msm/msm_mmu.h
19
uint64_t iova, size_t len);
drivers/gpu/drm/msm/msm_mmu.h
22
int (*map)(struct msm_mmu *mmu, uint64_t iova, struct sg_table *sgt,
drivers/gpu/drm/msm/msm_mmu.h
24
int (*unmap)(struct msm_mmu *mmu, uint64_t iova, size_t len);
drivers/gpu/drm/msm/msm_mmu.h
56
int (*handler)(void *arg, unsigned long iova, int flags, void *data);
drivers/gpu/drm/msm/msm_mmu.h
82
int (*handler)(void *arg, unsigned long iova, int flags, void *data))
drivers/gpu/drm/msm/msm_mmu.h
92
int msm_iommu_pagetable_walk(struct msm_mmu *mmu, unsigned long iova, uint64_t ptes[4]);
drivers/gpu/drm/msm/msm_rd.c
312
uint64_t iova, bool full, size_t offset, size_t size)
drivers/gpu/drm/msm/msm_rd.c
321
(uint32_t[3]){ iova, size, iova >> 32 }, 12);
drivers/gpu/drm/msm/msm_rd.c
396
snapshot_buf(rd, obj, submit->bos[i].iova, dump, 0, obj->size);
drivers/gpu/drm/msm/msm_rd.c
407
size_t offset = submit->cmd[i].iova - submit->bos[idx].iova;
drivers/gpu/drm/msm/msm_rd.c
409
snapshot_buf(rd, obj, submit->cmd[i].iova, true,
drivers/gpu/drm/msm/msm_rd.c
416
uint64_t iova = submit->cmd[i].iova;
drivers/gpu/drm/msm/msm_rd.c
429
(uint32_t[3]){ iova, szd, iova >> 32 }, 12);
drivers/gpu/drm/msm/msm_ringbuffer.c
92
gpu->vm, &ring->bo, &ring->iova);
drivers/gpu/drm/msm/msm_ringbuffer.h
72
uint64_t iova;
drivers/gpu/drm/panfrost/panfrost_dump.c
226
iter.hdr->bomap.iova = mapping->mmnode.start << PAGE_SHIFT;
drivers/gpu/drm/panfrost/panfrost_mmu.c
140
u64 iova, u64 size, u32 op)
drivers/gpu/drm/panfrost/panfrost_mmu.c
146
lock_region(pfdev, as_nr, iova, size);
drivers/gpu/drm/panfrost/panfrost_mmu.c
157
u64 iova, u64 size, u32 op)
drivers/gpu/drm/panfrost/panfrost_mmu.c
162
ret = mmu_hw_do_operation_locked(pfdev, mmu->as, iova, size, op);
drivers/gpu/drm/panfrost/panfrost_mmu.c
385
u64 iova, u64 size)
drivers/gpu/drm/panfrost/panfrost_mmu.c
394
mmu_hw_do_operation(pfdev, mmu, iova, size, AS_COMMAND_FLUSH_PT);
drivers/gpu/drm/panfrost/panfrost_mmu.c
399
static void mmu_unmap_range(struct panfrost_mmu *mmu, u64 iova, size_t len)
drivers/gpu/drm/panfrost/panfrost_mmu.c
406
pgsize = get_pgsize(iova, len - unmapped_len, &pgcount);
drivers/gpu/drm/panfrost/panfrost_mmu.c
408
unmapped_page = ops->unmap_pages(ops, iova, pgsize, pgcount, NULL);
drivers/gpu/drm/panfrost/panfrost_mmu.c
411
iova += pgsize * pgcount;
drivers/gpu/drm/panfrost/panfrost_mmu.c
417
u64 iova, int prot, struct sg_table *sgt)
drivers/gpu/drm/panfrost/panfrost_mmu.c
423
u64 start_iova = iova;
drivers/gpu/drm/panfrost/panfrost_mmu.c
432
mmu->as, iova, paddr, len);
drivers/gpu/drm/panfrost/panfrost_mmu.c
436
size_t pgsize = get_pgsize(iova | paddr, len, &pgcount);
drivers/gpu/drm/panfrost/panfrost_mmu.c
438
ret = ops->map_pages(ops, iova, paddr, pgsize, pgcount, prot,
drivers/gpu/drm/panfrost/panfrost_mmu.c
446
iova += mapped;
drivers/gpu/drm/panfrost/panfrost_mmu.c
452
panfrost_mmu_flush_range(pfdev, mmu, start_iova, iova - start_iova);
drivers/gpu/drm/panfrost/panfrost_mmu.c
501
u64 iova = mapping->mmnode.start << PAGE_SHIFT;
drivers/gpu/drm/panfrost/panfrost_mmu.c
509
mapping->mmu->as, iova, len);
drivers/gpu/drm/panfrost/panfrost_mmu.c
513
size_t pgsize = get_pgsize(iova, len - unmapped_len, &pgcount);
drivers/gpu/drm/panfrost/panfrost_mmu.c
517
if (!bo->is_heap || ops->iova_to_phys(ops, iova)) {
drivers/gpu/drm/panfrost/panfrost_mmu.c
518
unmapped_page = ops->unmap_pages(ops, iova, pgsize, pgcount, NULL);
drivers/gpu/drm/panfrost/panfrost_mmu.c
521
iova += pgsize * pgcount;
drivers/gpu/drm/panfrost/panfrost_mmu.c
539
static void mmu_tlb_flush_walk(unsigned long iova, size_t size, size_t granule,
drivers/gpu/drm/panthor/panthor_mmu.c
1000
size_t pgsize = get_pgsize(iova | paddr, len, &pgcount);
drivers/gpu/drm/panthor/panthor_mmu.c
1002
ret = ops->map_pages(ops, iova, paddr, pgsize, pgcount, prot,
drivers/gpu/drm/panthor/panthor_mmu.c
1007
vm->as.id, start_iova, start_size, iova, &paddr,
drivers/gpu/drm/panthor/panthor_mmu.c
1010
iova += mapped;
drivers/gpu/drm/panthor/panthor_mmu.c
1023
panthor_vm_unmap_pages(vm, start_iova, iova - start_iova);
drivers/gpu/drm/panthor/panthor_mmu.c
1678
static void mmu_tlb_flush_walk(unsigned long iova, size_t size, size_t granule, void *cookie)
drivers/gpu/drm/panthor/panthor_mmu.c
913
static void panthor_vm_unmap_pages(struct panthor_vm *vm, u64 iova, u64 size)
drivers/gpu/drm/panthor/panthor_mmu.c
917
u64 start_iova = iova;
drivers/gpu/drm/panthor/panthor_mmu.c
924
(iova < vm->locked_region.start) ||
drivers/gpu/drm/panthor/panthor_mmu.c
925
(iova + size > vm->locked_region.start + vm->locked_region.size));
drivers/gpu/drm/panthor/panthor_mmu.c
929
size_t pgsize = get_pgsize(iova + offset, size - offset, &pgcount);
drivers/gpu/drm/panthor/panthor_mmu.c
931
unmapped_sz = ops->unmap_pages(ops, iova + offset, pgsize, pgcount, NULL);
drivers/gpu/drm/panthor/panthor_mmu.c
938
while (!ops->iova_to_phys(ops, iova + unmapped_sz) &&
drivers/gpu/drm/panthor/panthor_mmu.c
958
vm->as.id, start_iova, size, iova + offset,
drivers/gpu/drm/panthor/panthor_mmu.c
966
panthor_vm_map_pages(struct panthor_vm *vm, u64 iova, int prot,
drivers/gpu/drm/panthor/panthor_mmu.c
973
u64 start_iova = iova;
drivers/gpu/drm/panthor/panthor_mmu.c
981
(iova < vm->locked_region.start) ||
drivers/gpu/drm/panthor/panthor_mmu.c
982
(iova + size > vm->locked_region.start + vm->locked_region.size));
drivers/gpu/drm/tegra/dc.c
1049
value |= (tegra_plane_state->iova[0] >> 10) & 0x3fffff;
drivers/gpu/drm/tegra/dc.c
1053
value = (tegra_plane_state->iova[0] >> 32) & (dma_mask >> 32);
drivers/gpu/drm/tegra/dc.c
864
window.base[i] = tegra_plane_state->iova[i] + fb->offsets[i];
drivers/gpu/drm/tegra/drm.c
1014
struct iova *alloc;
drivers/gpu/drm/tegra/drm.h
126
void *tegra_drm_alloc(struct tegra_drm *tegra, size_t size, dma_addr_t *iova);
drivers/gpu/drm/tegra/drm.h
128
dma_addr_t iova);
drivers/gpu/drm/tegra/falcon.c
192
falcon_writel(falcon, (falcon->firmware.iova +
drivers/gpu/drm/tegra/falcon.h
89
dma_addr_t iova;
drivers/gpu/drm/tegra/fbdev.c
129
info->fix.smem_start = (unsigned long)(bo->iova);
drivers/gpu/drm/tegra/firewall.c
34
if (offset >= m->iova && offset <= m->iova_end)
drivers/gpu/drm/tegra/gem.c
127
err = dma_get_sgtable(dev, map->sgt, obj->vaddr, obj->iova, gem->size);
drivers/gpu/drm/tegra/gem.c
145
map->phys = obj->iova;
drivers/gpu/drm/tegra/gem.c
257
bo->iova = bo->mm->start;
drivers/gpu/drm/tegra/gem.c
259
size = iommu_map_sgtable(tegra->domain, bo->iova, bo->sgt, prot);
drivers/gpu/drm/tegra/gem.c
286
iommu_unmap(tegra->domain, bo->iova, bo->size);
drivers/gpu/drm/tegra/gem.c
341
dma_free_wc(drm->dev, bo->gem.size, bo->vaddr, bo->iova);
drivers/gpu/drm/tegra/gem.c
393
bo->vaddr = dma_alloc_wc(drm->dev, size, &bo->iova,
drivers/gpu/drm/tegra/gem.c
595
err = dma_mmap_wc(gem->dev->dev, vma, bo->vaddr, bo->iova,
drivers/gpu/drm/tegra/gem.c
645
if (dma_get_sgtable(attach->dev, sgt, bo->vaddr, bo->iova,
drivers/gpu/drm/tegra/gem.h
60
dma_addr_t iova;
drivers/gpu/drm/tegra/hub.c
641
base = tegra_plane_state->iova[0] + fb->offsets[0];
drivers/gpu/drm/tegra/hub.c
667
base = tegra_plane_state->iova[1] + fb->offsets[1];
drivers/gpu/drm/tegra/hub.c
674
base = tegra_plane_state->iova[2] + fb->offsets[2];
drivers/gpu/drm/tegra/nvdec.c
229
nvdec->falcon.firmware.iova);
drivers/gpu/drm/tegra/nvdec.c
233
nvdec->falcon.firmware.iova);
drivers/gpu/drm/tegra/nvdec.c
248
dma_addr_t iova;
drivers/gpu/drm/tegra/nvdec.c
263
virt = dma_alloc_coherent(nvdec->dev, size, &iova, GFP_KERNEL);
drivers/gpu/drm/tegra/nvdec.c
267
virt = tegra_drm_alloc(tegra, size, &iova);
drivers/gpu/drm/tegra/nvdec.c
273
nvdec->falcon.firmware.iova = iova;
drivers/gpu/drm/tegra/nvdec.c
300
dma_free_coherent(nvdec->dev, size, virt, iova);
drivers/gpu/drm/tegra/nvdec.c
302
tegra_drm_free(tegra, size, virt, iova);
drivers/gpu/drm/tegra/nvjpg.c
114
dma_addr_t iova;
drivers/gpu/drm/tegra/nvjpg.c
129
virt = dma_alloc_coherent(nvjpg->dev, size, &iova, GFP_KERNEL);
drivers/gpu/drm/tegra/nvjpg.c
133
virt = tegra_drm_alloc(tegra, size, &iova);
drivers/gpu/drm/tegra/nvjpg.c
139
nvjpg->falcon.firmware.iova = iova;
drivers/gpu/drm/tegra/nvjpg.c
166
dma_free_coherent(nvjpg->dev, size, virt, iova);
drivers/gpu/drm/tegra/nvjpg.c
168
tegra_drm_free(tegra, size, virt, iova);
drivers/gpu/drm/tegra/nvjpg.c
95
nvjpg->falcon.firmware.iova);
drivers/gpu/drm/tegra/nvjpg.c
99
nvjpg->falcon.firmware.iova);
drivers/gpu/drm/tegra/plane.c
167
state->iova[i] = map->phys;
drivers/gpu/drm/tegra/plane.c
169
state->iova[i] = bo->iova;
drivers/gpu/drm/tegra/plane.c
182
state->iova[i] = DMA_MAPPING_ERROR;
drivers/gpu/drm/tegra/plane.c
195
state->iova[i] = DMA_MAPPING_ERROR;
drivers/gpu/drm/tegra/plane.c
47
state->iova[i] = DMA_MAPPING_ERROR;
drivers/gpu/drm/tegra/plane.c
77
copy->iova[i] = DMA_MAPPING_ERROR;
drivers/gpu/drm/tegra/plane.h
47
dma_addr_t iova[3];
drivers/gpu/drm/tegra/submit.c
231
dma_addr_t iova = mapping->iova + buf->reloc.target_offset;
drivers/gpu/drm/tegra/submit.c
236
iova |= BIT_ULL(39);
drivers/gpu/drm/tegra/submit.c
239
written_ptr = iova >> buf->reloc.shift;
drivers/gpu/drm/tegra/uapi.c
252
mapping->iova = mapping->map->phys;
drivers/gpu/drm/tegra/uapi.c
253
mapping->iova_end = mapping->iova + host1x_to_tegra_bo(mapping->bo)->gem.size;
drivers/gpu/drm/tegra/uapi.h
33
dma_addr_t iova;
drivers/gpu/drm/tegra/vic.c
105
(vic->falcon.firmware.iova + fce_bin_data_offset) >> 8);
drivers/gpu/drm/tegra/vic.c
195
vic->falcon.firmware.iova);
drivers/gpu/drm/tegra/vic.c
199
vic->falcon.firmware.iova);
drivers/gpu/drm/tegra/vic.c
216
dma_addr_t iova;
drivers/gpu/drm/tegra/vic.c
235
virt = dma_alloc_coherent(vic->dev, size, &iova, GFP_KERNEL);
drivers/gpu/drm/tegra/vic.c
241
virt = tegra_drm_alloc(tegra, size, &iova);
drivers/gpu/drm/tegra/vic.c
249
vic->falcon.firmware.iova = iova;
drivers/gpu/drm/tegra/vic.c
297
dma_free_coherent(vic->dev, size, virt, iova);
drivers/gpu/drm/tegra/vic.c
299
tegra_drm_free(tegra, size, virt, iova);
drivers/gpu/host1x/cdma.c
106
pb->dma = iova_dma_addr(&host1x->iova, alloc);
drivers/gpu/host1x/cdma.c
127
__free_iova(&host1x->iova, alloc);
drivers/gpu/host1x/cdma.c
58
free_iova(&host1x->iova, iova_pfn(&host1x->iova, pb->dma));
drivers/gpu/host1x/cdma.c
74
struct iova *alloc;
drivers/gpu/host1x/cdma.c
91
size = iova_align(&host1x->iova, size);
drivers/gpu/host1x/cdma.c
98
shift = iova_shift(&host1x->iova);
drivers/gpu/host1x/cdma.c
99
alloc = alloc_iova(&host1x->iova, size >> shift,
drivers/gpu/host1x/dev.c
436
init_iova_domain(&host->iova, 1UL << order, start >> order);
drivers/gpu/host1x/dev.c
492
put_iova_domain(&host->iova);
drivers/gpu/host1x/dev.h
146
struct iova_domain iova;
drivers/gpu/host1x/job.c
217
struct iova *alloc;
drivers/gpu/host1x/job.c
243
gather_size = iova_align(&host->iova, gather_size);
drivers/gpu/host1x/job.c
245
shift = iova_shift(&host->iova);
drivers/gpu/host1x/job.c
246
alloc = alloc_iova(&host->iova, gather_size >> shift,
drivers/gpu/host1x/job.c
253
map_err = iommu_map_sgtable(host->domain, iova_dma_addr(&host->iova, alloc),
drivers/gpu/host1x/job.c
256
__free_iova(&host->iova, alloc);
drivers/gpu/host1x/job.c
261
map->phys = iova_dma_addr(&host->iova, alloc);
drivers/gpu/host1x/job.c
666
free_iova(&host->iova, iova_pfn(&host->iova, job->addr_phys[i]));
drivers/infiniband/core/rw.c
1015
dma_iova_destroy(dev->dma_device, &ctx->iova.state,
drivers/infiniband/core/rw.c
1016
ctx->iova.mapped_len, dir, 0);
drivers/infiniband/core/rw.c
120
reg->sge.addr = reg->mr->iova;
drivers/infiniband/core/rw.c
505
if (!dma_iova_try_alloc(dma_dev, &ctx->iova.state,
drivers/infiniband/core/rw.c
513
ret = dma_iova_link(dma_dev, &ctx->iova.state, bvec_phys(&bv),
drivers/infiniband/core/rw.c
523
ret = dma_iova_sync(dma_dev, &ctx->iova.state, 0, mapped_len);
drivers/infiniband/core/rw.c
527
ctx->iova.mapped_len = mapped_len;
drivers/infiniband/core/rw.c
530
ctx->iova.sge.addr = ctx->iova.state.addr;
drivers/infiniband/core/rw.c
531
ctx->iova.sge.length = mapped_len;
drivers/infiniband/core/rw.c
532
ctx->iova.sge.lkey = qp->pd->local_dma_lkey;
drivers/infiniband/core/rw.c
535
memset(&ctx->iova.wr, 0, sizeof(ctx->iova.wr));
drivers/infiniband/core/rw.c
537
ctx->iova.wr.wr.opcode = IB_WR_RDMA_WRITE;
drivers/infiniband/core/rw.c
539
ctx->iova.wr.wr.opcode = IB_WR_RDMA_READ;
drivers/infiniband/core/rw.c
540
ctx->iova.wr.wr.num_sge = 1;
drivers/infiniband/core/rw.c
541
ctx->iova.wr.wr.sg_list = &ctx->iova.sge;
drivers/infiniband/core/rw.c
542
ctx->iova.wr.remote_addr = remote_addr;
drivers/infiniband/core/rw.c
543
ctx->iova.wr.rkey = rkey;
drivers/infiniband/core/rw.c
555
dma_iova_destroy(dma_dev, &ctx->iova.state, mapped_len, dir, 0);
drivers/infiniband/core/rw.c
809
ctx->reg->sge.addr = ctx->reg->mr->iova;
drivers/infiniband/core/rw.c
891
first_wr = &ctx->iova.wr.wr;
drivers/infiniband/core/rw.c
892
last_wr = &ctx->iova.wr.wr;
drivers/infiniband/core/umem.c
100
umem->iova = va = virt;
drivers/infiniband/core/umem.c
203
umem->iova = addr;
drivers/infiniband/core/uverbs_cmd.c
736
mr->iova = cmd.hca_va;
drivers/infiniband/core/uverbs_cmd.c
869
mr->iova = cmd.hca_va;
drivers/infiniband/core/uverbs_std_types_mr.c
181
&mr->iova, sizeof(mr->iova));
drivers/infiniband/core/uverbs_std_types_mr.c
195
u64 offset, length, iova;
drivers/infiniband/core/uverbs_std_types_mr.c
213
ret = uverbs_copy_from(&iova, attrs,
drivers/infiniband/core/uverbs_std_types_mr.c
218
if ((offset & ~PAGE_MASK) != (iova & ~PAGE_MASK))
drivers/infiniband/core/uverbs_std_types_mr.c
240
mr = pd->device->ops.reg_user_mr_dmabuf(pd, offset, length, iova, fd,
drivers/infiniband/core/uverbs_std_types_mr.c
277
u64 length, iova, fd_offset = 0, addr = 0;
drivers/infiniband/core/uverbs_std_types_mr.c
288
ret = uverbs_copy_from(&iova, attrs, UVERBS_ATTR_REG_MR_IOVA);
drivers/infiniband/core/uverbs_std_types_mr.c
328
if ((fd_offset & ~PAGE_MASK) != (iova & ~PAGE_MASK))
drivers/infiniband/core/uverbs_std_types_mr.c
340
if ((addr & ~PAGE_MASK) != (iova & ~PAGE_MASK))
drivers/infiniband/core/uverbs_std_types_mr.c
363
iova, fd, access_flags,
drivers/infiniband/core/uverbs_std_types_mr.c
366
mr = pd->device->ops.reg_user_mr(pd, addr, length, iova,
drivers/infiniband/core/verbs.c
2283
mr->iova = virt_addr;
drivers/infiniband/core/verbs.c
2808
mr->iova = sg_dma_address(&sgl[0]) + sg_offset;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
3125
wqe->frmr.va = wr->mr->iova;
drivers/infiniband/hw/cxgb4/qp.c
808
fr->tpte.va_hi = cpu_to_be32(mhp->ibmr.iova >> 32);
drivers/infiniband/hw/cxgb4/qp.c
809
fr->tpte.va_lo_fbo = cpu_to_be32(mhp->ibmr.iova & 0xffffffff);
drivers/infiniband/hw/cxgb4/qp.c
837
wqe->fr.va_hi = cpu_to_be32(mhp->ibmr.iova >> 32);
drivers/infiniband/hw/cxgb4/qp.c
838
wqe->fr.va_lo_fbo = cpu_to_be32(mhp->ibmr.iova &
drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
406
u64 iova;
drivers/infiniband/hw/efa/efa_com_cmd.c
246
mr_cmd.iova = params->iova;
drivers/infiniband/hw/efa/efa_com_cmd.h
175
u64 iova;
drivers/infiniband/hw/efa/efa_io_defs.h
206
u64 iova;
drivers/infiniband/hw/efa/efa_verbs.c
1655
params.iova = virt_addr;
drivers/infiniband/hw/erdma/erdma_qp.c
562
regmr_sge->addr = cpu_to_le64(mr->ibmr.iova);
drivers/infiniband/hw/hns/hns_roce_device.h
304
u64 iova;
drivers/infiniband/hw/hns/hns_roce_device.h
330
u64 iova; /* MR's virtual original addr */
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
165
rc_sq_wqe->va = cpu_to_le64(wr->mr->iova);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
3597
mpt_entry->va_l = cpu_to_le32(lower_32_bits(mr->iova));
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
3598
mpt_entry->va_h = cpu_to_le32(upper_32_bits(mr->iova));
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
3639
mpt_entry->va_l = cpu_to_le32(lower_32_bits(mr->iova));
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
3640
mpt_entry->va_h = cpu_to_le32(upper_32_bits(mr->iova));
drivers/infiniband/hw/hns/hns_roce_mr.c
108
buf_attr.iova = mr->iova;
drivers/infiniband/hw/hns/hns_roce_mr.c
252
mr->iova = virt_addr;
drivers/infiniband/hw/hns/hns_roce_mr.c
325
mr->iova = virt_addr;
drivers/infiniband/hw/hns/hns_roce_mr.c
839
buf_attr->iova);
drivers/infiniband/hw/hns/hns_roce_trace.h
115
TP_STRUCT__entry(__field(u64, iova)
drivers/infiniband/hw/hns/hns_roce_trace.h
125
TP_fast_assign(__entry->iova = mr->iova;
drivers/infiniband/hw/hns/hns_roce_trace.h
136
__entry->iova, __entry->size, __entry->key,
drivers/infiniband/hw/ionic/ionic_controlpath.c
893
mr->ibmr.iova = addr;
drivers/infiniband/hw/ionic/ionic_controlpath.c
960
mr->ibmr.iova = addr;
drivers/infiniband/hw/ionic/ionic_datapath.c
1104
wqe->reg_mr.va = cpu_to_be64(mr->ibmr.iova);
drivers/infiniband/hw/ionic/ionic_datapath.c
1106
wqe->reg_mr.offset = ionic_pgtbl_off(&mr->buf, mr->ibmr.iova);
drivers/infiniband/hw/ionic/ionic_datapath.c
1107
dma_addr = ionic_pgtbl_dma(&mr->buf, mr->ibmr.iova);
drivers/infiniband/hw/irdma/verbs.c
3370
iwmr->ibmr.iova = virt;
drivers/infiniband/hw/irdma/verbs.c
3734
iwmr->ibmr.iova = virt;
drivers/infiniband/hw/irdma/verbs.c
3895
iwmr->ibmr.iova = *iova_start;
drivers/infiniband/hw/irdma/verbs.c
4191
stag_info.va = (void *)(uintptr_t)iwmr->ibmr.iova;
drivers/infiniband/hw/mana/mana_ib.h
668
u64 iova, int access_flags,
drivers/infiniband/hw/mana/mana_ib.h
762
u64 iova, int fd, int mr_access_flags,
drivers/infiniband/hw/mana/mr.c
101
u64 iova, int access_flags,
drivers/infiniband/hw/mana/mr.c
120
start, iova, length, access_flags);
drivers/infiniband/hw/mana/mr.c
139
err = mana_ib_create_dma_region(dev, mr->umem, &dma_region_handle, iova);
drivers/infiniband/hw/mana/mr.c
159
mr_params.gva.virtual_address = iova;
drivers/infiniband/hw/mana/mr.c
188
u64 iova, int fd, int access_flags,
drivers/infiniband/hw/mana/mr.c
224
err = mana_ib_create_dma_region(dev, mr->umem, &dma_region_handle, iova);
drivers/infiniband/hw/mana/mr.c
234
mr_params.gva.virtual_address = iova;
drivers/infiniband/hw/mlx4/mr.c
273
mmr->mmr.iova = virt_addr;
drivers/infiniband/hw/mlx4/qp.c
3299
fseg->start_addr = cpu_to_be64(mr->ibmr.iova);
drivers/infiniband/hw/mlx5/mlx5_ib.h
1736
u64 iova, int access_mode)
drivers/infiniband/hw/mlx5/mlx5_ib.h
1747
if (access_mode == MLX5_MKC_ACCESS_MODE_KSM && iova)
drivers/infiniband/hw/mlx5/mlx5_ib.h
1748
bitmap &= GENMASK_ULL(__ffs64(iova), 0);
drivers/infiniband/hw/mlx5/mlx5_ib.h
1750
return ib_umem_find_best_pgsz(umem, bitmap, iova);
drivers/infiniband/hw/mlx5/mlx5_ib.h
1759
umem_dmabuf->umem.iova,
drivers/infiniband/hw/mlx5/mr.c
1096
int new_access_flags, u64 iova,
drivers/infiniband/hw/mlx5/mr.c
1114
mlx5_umem_mkc_find_best_pgsz(dev, new_umem, iova, access_mode);
drivers/infiniband/hw/mlx5/mr.c
1123
u64 iova, unsigned long page_size)
drivers/infiniband/hw/mlx5/mr.c
1146
mr->ibmr.iova = iova;
drivers/infiniband/hw/mlx5/mr.c
1167
u64 length, u64 iova, int new_access_flags,
drivers/infiniband/hw/mlx5/mr.c
1183
start, iova, length, new_access_flags);
drivers/infiniband/hw/mlx5/mr.c
1207
iova = 0;
drivers/infiniband/hw/mlx5/mr.c
1239
return create_real_mr(new_pd, umem, mr->ibmr.iova,
drivers/infiniband/hw/mlx5/mr.c
1261
if (can_use_umr_rereg_pas(mr, new_umem, new_access_flags, iova,
drivers/infiniband/hw/mlx5/mr.c
1264
new_umem, iova, page_size);
drivers/infiniband/hw/mlx5/mr.c
1271
return create_real_mr(new_pd, new_umem, iova, new_access_flags, NULL);
drivers/infiniband/hw/mlx5/mr.c
1279
return mlx5_ib_reg_user_mr(new_pd, start, length, iova,
drivers/infiniband/hw/mlx5/mr.c
1971
mr->ibmr.iova = sg_dma_address(sg) + sg_offset;
drivers/infiniband/hw/mlx5/mr.c
2069
pi_mr->data_iova = pi_mr->ibmr.iova;
drivers/infiniband/hw/mlx5/mr.c
2076
u64 iova = pi_mr->data_iova;
drivers/infiniband/hw/mlx5/mr.c
2088
pi_mr->pi_iova = (iova & page_mask) +
drivers/infiniband/hw/mlx5/mr.c
2090
(pi_mr->ibmr.iova & ~page_mask);
drivers/infiniband/hw/mlx5/mr.c
2098
pi_mr->ibmr.length = pi_mr->pi_iova + pi_mr->meta_length - iova;
drivers/infiniband/hw/mlx5/mr.c
2099
pi_mr->ibmr.iova = iova;
drivers/infiniband/hw/mlx5/mr.c
2137
pi_mr->ibmr.iova = 0;
drivers/infiniband/hw/mlx5/mr.c
2195
ibmr->iova = 0;
drivers/infiniband/hw/mlx5/mr.c
421
u64 length, int access_flags, u64 iova)
drivers/infiniband/hw/mlx5/mr.c
427
mr->ibmr.iova = iova;
drivers/infiniband/hw/mlx5/mr.c
432
u64 iova)
drivers/infiniband/hw/mlx5/mr.c
438
umem->iova = iova;
drivers/infiniband/hw/mlx5/mr.c
443
struct ib_umem *umem, u64 iova,
drivers/infiniband/hw/mlx5/mr.c
452
page_size = mlx5_umem_dmabuf_default_pgsz(umem, iova);
drivers/infiniband/hw/mlx5/mr.c
454
page_size = mlx5_umem_mkc_find_best_pgsz(dev, umem, iova,
drivers/infiniband/hw/mlx5/mr.c
468
set_mr_fields(dev, mr, umem->length, access_flags, iova);
drivers/infiniband/hw/mlx5/mr.c
474
reg_create_crossing_vhca_mr(struct ib_pd *pd, u64 iova, u64 length, int access_flags,
drivers/infiniband/hw/mlx5/mr.c
508
MLX5_SET64(mkc, mkc, len, iova + length);
drivers/infiniband/hw/mlx5/mr.c
517
set_mr_fields(dev, mr, length, access_flags, iova);
drivers/infiniband/hw/mlx5/mr.c
535
u64 iova, int access_flags,
drivers/infiniband/hw/mlx5/mr.c
58
u64 iova, int access_flags,
drivers/infiniband/hw/mlx5/mr.c
586
set_mkc_access_pd_addr_fields(mkc, access_flags, iova,
drivers/infiniband/hw/mlx5/mr.c
600
get_octo_len(iova, umem->length, mr->page_shift) * 2);
drivers/infiniband/hw/mlx5/mr.c
603
get_octo_len(iova, umem->length, mr->page_shift));
drivers/infiniband/hw/mlx5/mr.c
609
get_octo_len(iova, umem->length, mr->page_shift));
drivers/infiniband/hw/mlx5/mr.c
625
mr->mmkey.ndescs = get_octo_len(iova, umem->length, mr->page_shift);
drivers/infiniband/hw/mlx5/mr.c
627
set_mr_fields(dev, mr, umem->length, access_flags, iova);
drivers/infiniband/hw/mlx5/mr.c
738
u64 iova, int access_flags,
drivers/infiniband/hw/mlx5/mr.c
758
mr = alloc_cacheable_mr(pd, umem, iova, access_flags,
drivers/infiniband/hw/mlx5/mr.c
763
dev, umem, iova, MLX5_MKC_ACCESS_MODE_MTT);
drivers/infiniband/hw/mlx5/mr.c
766
mr = reg_create(pd, umem, iova, access_flags, page_size,
drivers/infiniband/hw/mlx5/mr.c
797
u64 iova, int access_flags,
drivers/infiniband/hw/mlx5/mr.c
812
if (iova != 0)
drivers/infiniband/hw/mlx5/mr.c
832
mr = alloc_cacheable_mr(pd, &odp->umem, iova, access_flags,
drivers/infiniband/hw/mlx5/mr.c
858
u64 iova, int access_flags,
drivers/infiniband/hw/mlx5/mr.c
871
start, iova, length, access_flags);
drivers/infiniband/hw/mlx5/mr.c
878
return create_user_odp_mr(pd, start, length, iova, access_flags,
drivers/infiniband/hw/mlx5/mr.c
883
return create_real_mr(pd, umem, iova, access_flags, dmah);
drivers/infiniband/hw/mlx5/odp.c
497
mr->ibmr.iova = idx * mlx5_imr_mtt_size;
drivers/infiniband/hw/mlx5/odp.c
627
imr->ibmr.iova = 0;
drivers/infiniband/hw/mlx5/odp.c
908
if (unlikely(io_virt < mr->ibmr.iova) && !permissive_fault)
drivers/infiniband/hw/mlx5/odp.c
915
u64 offset = io_virt < mr->ibmr.iova ? 0 : io_virt - mr->ibmr.iova;
drivers/infiniband/hw/mlx5/umr.c
611
MLX5_SET64(mkc, mkey_seg, start_addr, mr->ibmr.iova);
drivers/infiniband/hw/mlx5/umr.c
957
MLX5_SET64(mkc, &wqe.mkey_seg, start_addr, mr->ibmr.iova);
drivers/infiniband/hw/mlx5/wr.c
206
seg->start_addr = cpu_to_be64(mr->ibmr.iova);
drivers/infiniband/hw/mthca/mthca_dev.h
471
u64 iova, u64 total_size, u32 access, struct mthca_mr *mr);
drivers/infiniband/hw/mthca/mthca_dev.h
476
int list_len, u64 iova, u64 total_size,
drivers/infiniband/hw/mthca/mthca_mr.c
427
u64 iova, u64 total_size, u32 access, struct mthca_mr *mr)
drivers/infiniband/hw/mthca/mthca_mr.c
466
mpt_entry->start = cpu_to_be64(iova);
drivers/infiniband/hw/mthca/mthca_mr.c
517
int list_len, u64 iova, u64 total_size,
drivers/infiniband/hw/mthca/mthca_mr.c
532
err = mthca_mr_alloc(dev, pd, buffer_size_shift, iova,
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
2044
fbo = mr->ibmr.iova - mr->pages[0];
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
2046
fast_reg->va_hi = upper_32_bits(mr->ibmr.iova);
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
2047
fast_reg->va_lo = (u32) (mr->ibmr.iova & 0xffffffff);
drivers/infiniband/hw/qedr/verbs.c
3411
fwqe1->addr.hi = upper_32_bits(mr->ibmr.iova);
drivers/infiniband/hw/qedr/verbs.c
3412
fwqe1->addr.lo = lower_32_bits(mr->ibmr.iova);
drivers/infiniband/hw/usnic/usnic_uiom.c
56
unsigned long iova, int flags,
drivers/infiniband/hw/usnic/usnic_uiom.c
61
domain, iova, flags);
drivers/infiniband/hw/vmw_pvrdma/pvrdma.h
136
u64 iova;
drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c
155
mr->mmr.iova = virt_addr;
drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c
649
wqe_hdr->wr.fast_reg.iova_start = mr->ibmr.iova;
drivers/infiniband/sw/rdmavt/mr.c
367
mr->mr.iova = virt_addr;
drivers/infiniband/sw/rdmavt/mr.c
602
mr->mr.user_base = ibmr->iova;
drivers/infiniband/sw/rdmavt/mr.c
603
mr->mr.iova = ibmr->iova;
drivers/infiniband/sw/rdmavt/mr.c
604
mr->mr.offset = ibmr->iova - (u64)mr->mr.map[0]->segs[0].vaddr;
drivers/infiniband/sw/rdmavt/mr.c
638
mr->mr.iova = ibmr->iova;
drivers/infiniband/sw/rdmavt/mr.c
877
off = vaddr - mr->iova;
drivers/infiniband/sw/rdmavt/mr.c
878
if (unlikely(vaddr < mr->iova || off + len > mr->length ||
drivers/infiniband/sw/rdmavt/trace_mr.h
148
__field(u64, iova)
drivers/infiniband/sw/rdmavt/trace_mr.h
157
__entry->ibmr_iova = ibmr->iova;
drivers/infiniband/sw/rdmavt/trace_mr.h
158
__entry->iova = to_imr(ibmr)->mr.iova;
drivers/infiniband/sw/rdmavt/trace_mr.h
168
__entry->iova,
drivers/infiniband/sw/rdmavt/trace_mr.h
27
__field(u64, iova)
drivers/infiniband/sw/rdmavt/trace_mr.h
40
__entry->iova = mr->iova;
drivers/infiniband/sw/rdmavt/trace_mr.h
53
__entry->iova,
drivers/infiniband/sw/rxe/rxe_loc.h
195
u64 iova, int access_flags, struct rxe_mr *mr);
drivers/infiniband/sw/rxe/rxe_loc.h
196
int rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, int length,
drivers/infiniband/sw/rxe/rxe_loc.h
198
enum resp_states rxe_odp_atomic_op(struct rxe_mr *mr, u64 iova, int opcode,
drivers/infiniband/sw/rxe/rxe_loc.h
200
int rxe_odp_flush_pmem_iova(struct rxe_mr *mr, u64 iova,
drivers/infiniband/sw/rxe/rxe_loc.h
202
enum resp_states rxe_odp_do_atomic_write(struct rxe_mr *mr, u64 iova, u64 value);
drivers/infiniband/sw/rxe/rxe_loc.h
208
rxe_odp_mr_init_user(struct rxe_dev *rxe, u64 start, u64 length, u64 iova,
drivers/infiniband/sw/rxe/rxe_loc.h
213
static inline int rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr,
drivers/infiniband/sw/rxe/rxe_loc.h
219
rxe_odp_atomic_op(struct rxe_mr *mr, u64 iova, int opcode,
drivers/infiniband/sw/rxe/rxe_loc.h
224
static inline int rxe_odp_flush_pmem_iova(struct rxe_mr *mr, u64 iova,
drivers/infiniband/sw/rxe/rxe_loc.h
230
u64 iova, u64 value)
drivers/infiniband/sw/rxe/rxe_loc.h
63
int rxe_flush_pmem_iova(struct rxe_mr *mr, u64 iova, unsigned int length);
drivers/infiniband/sw/rxe/rxe_loc.h
64
int rxe_mr_copy(struct rxe_mr *mr, u64 iova, void *addr,
drivers/infiniband/sw/rxe/rxe_loc.h
70
enum resp_states rxe_mr_do_atomic_op(struct rxe_mr *mr, u64 iova, int opcode,
drivers/infiniband/sw/rxe/rxe_loc.h
72
enum resp_states rxe_mr_do_atomic_write(struct rxe_mr *mr, u64 iova, u64 value);
drivers/infiniband/sw/rxe/rxe_loc.h
75
int mr_check_range(struct rxe_mr *mr, u64 iova, size_t length);
drivers/infiniband/sw/rxe/rxe_mr.c
109
static unsigned long rxe_mr_iova_to_page_offset(struct rxe_mr *mr, u64 iova)
drivers/infiniband/sw/rxe/rxe_mr.c
112
return iova & (PAGE_SIZE - 1);
drivers/infiniband/sw/rxe/rxe_mr.c
114
return iova & (mr_page_size(mr) - 1);
drivers/infiniband/sw/rxe/rxe_mr.c
27
int mr_check_range(struct rxe_mr *mr, u64 iova, size_t length)
drivers/infiniband/sw/rxe/rxe_mr.c
325
static int rxe_mr_copy_xarray(struct rxe_mr *mr, u64 iova, void *addr,
drivers/infiniband/sw/rxe/rxe_mr.c
332
unsigned long index = rxe_mr_iova_to_index(mr, iova);
drivers/infiniband/sw/rxe/rxe_mr.c
334
unsigned int page_offset = rxe_mr_iova_to_page_offset(mr, iova);
drivers/infiniband/sw/rxe/rxe_mr.c
35
if (iova < mr->ibmr.iova ||
drivers/infiniband/sw/rxe/rxe_mr.c
350
iova += bytes;
drivers/infiniband/sw/rxe/rxe_mr.c
36
iova + length > mr->ibmr.iova + mr->ibmr.length) {
drivers/infiniband/sw/rxe/rxe_mr.c
384
int rxe_mr_copy(struct rxe_mr *mr, u64 iova, void *addr,
drivers/infiniband/sw/rxe/rxe_mr.c
396
rxe_mr_copy_dma(mr, iova, addr, length, dir);
drivers/infiniband/sw/rxe/rxe_mr.c
400
err = mr_check_range(mr, iova, length);
drivers/infiniband/sw/rxe/rxe_mr.c
407
return rxe_odp_mr_copy(mr, iova, addr, length, dir);
drivers/infiniband/sw/rxe/rxe_mr.c
409
return rxe_mr_copy_xarray(mr, iova, addr, length, dir);
drivers/infiniband/sw/rxe/rxe_mr.c
428
u64 iova;
drivers/infiniband/sw/rxe/rxe_mr.c
480
iova = sge->addr + offset;
drivers/infiniband/sw/rxe/rxe_mr.c
481
err = rxe_mr_copy(mr, iova, addr, bytes, dir);
drivers/infiniband/sw/rxe/rxe_mr.c
507
static int rxe_mr_flush_pmem_iova(struct rxe_mr *mr, u64 iova, unsigned int length)
drivers/infiniband/sw/rxe/rxe_mr.c
513
err = mr_check_range(mr, iova, length);
drivers/infiniband/sw/rxe/rxe_mr.c
518
unsigned long index = rxe_mr_iova_to_index(mr, iova);
drivers/infiniband/sw/rxe/rxe_mr.c
520
unsigned int page_offset = rxe_mr_iova_to_page_offset(mr, iova);
drivers/infiniband/sw/rxe/rxe_mr.c
533
iova += bytes;
drivers/infiniband/sw/rxe/rxe_mr.c
564
enum resp_states rxe_mr_do_atomic_op(struct rxe_mr *mr, u64 iova, int opcode,
drivers/infiniband/sw/rxe/rxe_mr.c
578
page_offset = iova & (PAGE_SIZE - 1);
drivers/infiniband/sw/rxe/rxe_mr.c
579
page = ib_virt_dma_to_page(iova);
drivers/infiniband/sw/rxe/rxe_mr.c
585
err = mr_check_range(mr, iova, sizeof(value));
drivers/infiniband/sw/rxe/rxe_mr.c
590
page_offset = rxe_mr_iova_to_page_offset(mr, iova);
drivers/infiniband/sw/rxe/rxe_mr.c
591
index = rxe_mr_iova_to_index(mr, iova);
drivers/infiniband/sw/rxe/rxe_mr.c
624
enum resp_states rxe_mr_do_atomic_write(struct rxe_mr *mr, u64 iova, u64 value)
drivers/infiniband/sw/rxe/rxe_mr.c
631
page_offset = iova & (PAGE_SIZE - 1);
drivers/infiniband/sw/rxe/rxe_mr.c
632
page = ib_virt_dma_to_page(iova);
drivers/infiniband/sw/rxe/rxe_mr.c
639
err = mr_check_range(mr, iova, sizeof(value));
drivers/infiniband/sw/rxe/rxe_mr.c
644
page_offset = rxe_mr_iova_to_page_offset(mr, iova);
drivers/infiniband/sw/rxe/rxe_mr.c
645
index = rxe_mr_iova_to_index(mr, iova);
drivers/infiniband/sw/rxe/rxe_mr.c
801
mr->ibmr.iova = wqe->wr.wr.reg.mr->iova;
drivers/infiniband/sw/rxe/rxe_mr.c
89
static unsigned long rxe_mr_iova_to_index(struct rxe_mr *mr, u64 iova)
drivers/infiniband/sw/rxe/rxe_mr.c
94
idx = (iova - (mr->ibmr.iova & mr->page_mask)) >> PAGE_SHIFT;
drivers/infiniband/sw/rxe/rxe_mr.c
96
idx = (iova >> mr->page_shift) -
drivers/infiniband/sw/rxe/rxe_mr.c
97
(mr->ibmr.iova >> mr->page_shift);
drivers/infiniband/sw/rxe/rxe_mw.c
123
if (unlikely((wqe->wr.wr.mw.addr < mr->ibmr.iova) ||
drivers/infiniband/sw/rxe/rxe_mw.c
125
(mr->ibmr.iova + mr->ibmr.length)))) {
drivers/infiniband/sw/rxe/rxe_odp.c
112
mr->ibmr.iova = iova;
drivers/infiniband/sw/rxe/rxe_odp.c
126
static inline bool rxe_check_pagefault(struct ib_umem_odp *umem_odp, u64 iova,
drivers/infiniband/sw/rxe/rxe_odp.c
133
addr = iova & (~(BIT(umem_odp->page_shift) - 1));
drivers/infiniband/sw/rxe/rxe_odp.c
136
while (addr < iova + length) {
drivers/infiniband/sw/rxe/rxe_odp.c
149
static unsigned long rxe_odp_iova_to_index(struct ib_umem_odp *umem_odp, u64 iova)
drivers/infiniband/sw/rxe/rxe_odp.c
151
return (iova - ib_umem_start(umem_odp)) >> umem_odp->page_shift;
drivers/infiniband/sw/rxe/rxe_odp.c
154
static unsigned long rxe_odp_iova_to_page_offset(struct ib_umem_odp *umem_odp, u64 iova)
drivers/infiniband/sw/rxe/rxe_odp.c
156
return iova & (BIT(umem_odp->page_shift) - 1);
drivers/infiniband/sw/rxe/rxe_odp.c
159
static int rxe_odp_map_range_and_lock(struct rxe_mr *mr, u64 iova, int length, u32 flags)
drivers/infiniband/sw/rxe/rxe_odp.c
170
need_fault = rxe_check_pagefault(umem_odp, iova, length);
drivers/infiniband/sw/rxe/rxe_odp.c
175
err = rxe_odp_do_pagefault_and_lock(mr, iova, length,
drivers/infiniband/sw/rxe/rxe_odp.c
180
need_fault = rxe_check_pagefault(umem_odp, iova, length);
drivers/infiniband/sw/rxe/rxe_odp.c
190
static int __rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr,
drivers/infiniband/sw/rxe/rxe_odp.c
199
idx = rxe_odp_iova_to_index(umem_odp, iova);
drivers/infiniband/sw/rxe/rxe_odp.c
200
offset = rxe_odp_iova_to_page_offset(umem_odp, iova);
drivers/infiniband/sw/rxe/rxe_odp.c
226
int rxe_odp_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, int length,
drivers/infiniband/sw/rxe/rxe_odp.c
251
err = rxe_odp_map_range_and_lock(mr, iova, length, flags);
drivers/infiniband/sw/rxe/rxe_odp.c
255
err = __rxe_odp_mr_copy(mr, iova, addr, length, dir);
drivers/infiniband/sw/rxe/rxe_odp.c
262
static enum resp_states rxe_odp_do_atomic_op(struct rxe_mr *mr, u64 iova,
drivers/infiniband/sw/rxe/rxe_odp.c
279
err = mr_check_range(mr, iova, sizeof(value));
drivers/infiniband/sw/rxe/rxe_odp.c
285
page_offset = rxe_odp_iova_to_page_offset(umem_odp, iova);
drivers/infiniband/sw/rxe/rxe_odp.c
291
idx = rxe_odp_iova_to_index(umem_odp, iova);
drivers/infiniband/sw/rxe/rxe_odp.c
313
enum resp_states rxe_odp_atomic_op(struct rxe_mr *mr, u64 iova, int opcode,
drivers/infiniband/sw/rxe/rxe_odp.c
319
err = rxe_odp_map_range_and_lock(mr, iova, sizeof(char),
drivers/infiniband/sw/rxe/rxe_odp.c
324
err = rxe_odp_do_atomic_op(mr, iova, opcode, compare, swap_add,
drivers/infiniband/sw/rxe/rxe_odp.c
331
int rxe_odp_flush_pmem_iova(struct rxe_mr *mr, u64 iova,
drivers/infiniband/sw/rxe/rxe_odp.c
342
err = rxe_odp_map_range_and_lock(mr, iova, length,
drivers/infiniband/sw/rxe/rxe_odp.c
348
index = rxe_odp_iova_to_index(umem_odp, iova);
drivers/infiniband/sw/rxe/rxe_odp.c
349
page_offset = rxe_odp_iova_to_page_offset(umem_odp, iova);
drivers/infiniband/sw/rxe/rxe_odp.c
361
iova += bytes;
drivers/infiniband/sw/rxe/rxe_odp.c
369
enum resp_states rxe_odp_do_atomic_write(struct rxe_mr *mr, u64 iova, u64 value)
drivers/infiniband/sw/rxe/rxe_odp.c
379
err = mr_check_range(mr, iova, sizeof(value));
drivers/infiniband/sw/rxe/rxe_odp.c
385
err = rxe_odp_map_range_and_lock(mr, iova, sizeof(value),
drivers/infiniband/sw/rxe/rxe_odp.c
390
page_offset = rxe_odp_iova_to_page_offset(umem_odp, iova);
drivers/infiniband/sw/rxe/rxe_odp.c
398
index = rxe_odp_iova_to_index(umem_odp, iova);
drivers/infiniband/sw/rxe/rxe_odp.c
80
u64 iova, int access_flags, struct rxe_mr *mr)
drivers/infiniband/sw/rxe/rxe_odp.c
91
if (iova != 0)
drivers/infiniband/sw/rxe/rxe_req.c
465
reth_set_va(pkt, wqe->iova);
drivers/infiniband/sw/rxe/rxe_req.c
480
atmeth_set_va(pkt, wqe->iova);
drivers/infiniband/sw/rxe/rxe_req.c
66
wqe->iova = (mask & WR_ATOMIC_MASK) ?
drivers/infiniband/sw/rxe/rxe_req.c
90
wqe->iova += npsn * qp->mtu;
drivers/infiniband/sw/rxe/rxe_resp.c
1380
u64 iova = reth_va(pkt);
drivers/infiniband/sw/rxe/rxe_resp.c
1383
if (iova < res->read.va_org ||
drivers/infiniband/sw/rxe/rxe_resp.c
1385
(iova + resid) > (res->read.va_org +
drivers/infiniband/sw/rxe/rxe_resp.c
1403
res->read.va_org = iova;
drivers/infiniband/sw/rxe/rxe_resp.c
1404
res->read.va = iova;
drivers/infiniband/sw/rxe/rxe_resp.c
713
start = mr->ibmr.iova;
drivers/infiniband/sw/rxe/rxe_resp.c
752
u64 iova = qp->resp.va + qp->resp.offset;
drivers/infiniband/sw/rxe/rxe_resp.c
755
err = rxe_odp_atomic_op(mr, iova, pkt->opcode,
drivers/infiniband/sw/rxe/rxe_resp.c
760
err = rxe_mr_do_atomic_op(mr, iova, pkt->opcode,
drivers/infiniband/sw/rxe/rxe_resp.c
786
u64 iova;
drivers/infiniband/sw/rxe/rxe_resp.c
799
iova = qp->resp.va + qp->resp.offset;
drivers/infiniband/sw/rxe/rxe_resp.c
808
err = rxe_odp_do_atomic_write(mr, iova, value);
drivers/infiniband/sw/rxe/rxe_resp.c
810
err = rxe_mr_do_atomic_write(mr, iova, value);
drivers/infiniband/sw/rxe/rxe_verbs.c
1254
u64 length, u64 iova, int access,
drivers/infiniband/sw/rxe/rxe_verbs.c
1287
err = rxe_odp_mr_init_user(rxe, start, length, iova, access, mr);
drivers/infiniband/sw/rxe/rxe_verbs.c
1309
u64 start, u64 length, u64 iova,
drivers/infiniband/sw/rxe/rxe_verbs.c
850
wqe->iova = mask & WR_ATOMIC_MASK ? atomic_wr(ibwr)->remote_addr :
drivers/infiniband/sw/siw/siw_qp_tx.c
971
mem->va = base_mr->iova;
drivers/infiniband/sw/siw/siw_verbs.c
1536
mem->va = base_mr->iova;
drivers/infiniband/ulp/iser/iser_memory.c
295
sig_reg->sge.addr = mr->iova;
drivers/infiniband/ulp/iser/iser_memory.c
343
reg->sge.addr = mr->iova;
drivers/infiniband/ulp/rtrs/rtrs-clt.c
1033
sge[i].addr = req->mr->iova;
drivers/infiniband/ulp/rtrs/rtrs-clt.c
1230
msg->desc[0].addr = cpu_to_le64(req->mr->iova);
drivers/infiniband/ulp/rtrs/rtrs-srv.c
859
rsp->desc[mri].addr = cpu_to_le64(mr->iova);
drivers/infiniband/ulp/srp/ib_srp.c
1489
srp_map_desc(state, desc->mr->iova,
drivers/iommu/amd/iommu.c
2620
unsigned long iova, size_t size)
drivers/iommu/amd/iommu.c
2629
amd_iommu_domain_flush_pages(domain, iova, iova + size - 1,
drivers/iommu/apple-dart.c
525
unsigned long iova, size_t size)
drivers/iommu/apple-dart.c
532
dma_addr_t iova)
drivers/iommu/apple-dart.c
540
return ops->iova_to_phys(ops, iova);
drivers/iommu/apple-dart.c
543
static int apple_dart_map_pages(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/apple-dart.c
554
return ops->map_pages(ops, iova, paddr, pgsize, pgcount, prot, gfp,
drivers/iommu/apple-dart.c
559
unsigned long iova, size_t pgsize,
drivers/iommu/apple-dart.c
566
return ops->unmap_pages(ops, iova, pgsize, pgcount, gather);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2012
event->iova = FIELD_GET(EVTQ_2_ADDR, raw[2]);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2069
.addr = event->iova,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2127
evt->sid, evt->ssid, evt->iova, evt->ipa);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2302
arm_smmu_atc_inv_to_cmd(u32 sid, int ssid, unsigned long iova, size_t size)
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2324
page_start = iova >> inval_grain_shift;
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2325
page_end = (iova + size - 1) >> inval_grain_shift;
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2401
unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2404
unsigned long end = iova + size, num_pages = 0, tg = pgsize;
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2432
while (iova < end) {
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2468
(iova & ~GENMASK_U64(11, 0));
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2471
iova += inv_range;
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2503
unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2516
iova, size, granule, inv->pgsize);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2536
unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2568
iova, size, granule);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2574
iova, size, granule);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2589
iova, size));
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2617
unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2660
__arm_smmu_domain_inv_range(invs, iova, size, granule, leaf);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2663
__arm_smmu_domain_inv_range(invs, iova, size, granule, leaf);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2670
unsigned long iova, size_t granule,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2676
iommu_iotlb_gather_add_page(domain, gather, iova, granule);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2679
static void arm_smmu_tlb_inv_walk(unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
2684
arm_smmu_domain_inv_range(smmu_domain, iova, size, granule, false);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
3920
static int arm_smmu_map_pages(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
3929
return ops->map_pages(ops, iova, paddr, pgsize, pgcount, prot, gfp, mapped);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
3932
static size_t arm_smmu_unmap_pages(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
3942
return ops->unmap_pages(ops, iova, pgsize, pgcount, gather);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
3967
arm_smmu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova)
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
3974
return ops->iova_to_phys(ops, iova);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
4227
unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
4234
return ops->read_and_clear_dirty(ops, iova, size, flags, dirty);
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
1152
unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h
987
u64 iova;
drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c
198
unsigned long iova;
drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c
207
iova = readq_relaxed(cb_base + ARM_SMMU_CB_FAR);
drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c
212
fsr, iova, fsynr, cbfrsynra, idx);
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
201
struct qcom_tbu *tbu, dma_addr_t iova, u32 sid)
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
213
writeq_relaxed(iova, tbu->base + DEBUG_VA_ADDR_REG);
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
263
dma_addr_t iova, u32 sid)
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
319
phys = qcom_tbu_trigger_atos(smmu_domain, tbu, iova, sid);
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
347
static phys_addr_t qcom_smmu_iova_to_phys_hard(struct arm_smmu_domain *smmu_domain, dma_addr_t iova)
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
357
return qcom_iova_to_phys(smmu_domain, iova, sid);
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
360
static phys_addr_t qcom_smmu_verify_fault(struct arm_smmu_domain *smmu_domain, dma_addr_t iova, u32 fsr)
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
367
phys = qcom_smmu_iova_to_phys_hard(smmu_domain, iova);
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
369
phys_post_tlbiall = qcom_smmu_iova_to_phys_hard(smmu_domain, iova);
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
401
ret = report_iommu_fault(&smmu_domain->domain, NULL, cfi.iova,
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
417
phys_soft = ops->iova_to_phys(ops, cfi.iova);
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
419
tmp = report_iommu_fault(&smmu_domain->domain, NULL, cfi.iova,
drivers/iommu/arm/arm-smmu/arm-smmu-qcom-debug.c
428
phys_addr_t phys_atos = qcom_smmu_verify_fault(smmu_domain, cfi.iova, cfi.fsr);
drivers/iommu/arm/arm-smmu/arm-smmu.c
1269
static int arm_smmu_map_pages(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/arm/arm-smmu/arm-smmu.c
1281
ret = ops->map_pages(ops, iova, paddr, pgsize, pgcount, prot, gfp, mapped);
drivers/iommu/arm/arm-smmu/arm-smmu.c
1287
static size_t arm_smmu_unmap_pages(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/arm/arm-smmu/arm-smmu.c
1299
ret = ops->unmap_pages(ops, iova, pgsize, pgcount, iotlb_gather);
drivers/iommu/arm/arm-smmu/arm-smmu.c
1336
dma_addr_t iova)
drivers/iommu/arm/arm-smmu/arm-smmu.c
1355
va = iova & ~0xfffUL;
drivers/iommu/arm/arm-smmu/arm-smmu.c
1367
&iova);
drivers/iommu/arm/arm-smmu/arm-smmu.c
1369
return ops->iova_to_phys(ops, iova);
drivers/iommu/arm/arm-smmu/arm-smmu.c
1380
addr = (phys & GENMASK_ULL(39, 12)) | (iova & 0xfff);
drivers/iommu/arm/arm-smmu/arm-smmu.c
1388
dma_addr_t iova)
drivers/iommu/arm/arm-smmu/arm-smmu.c
1398
return arm_smmu_iova_to_phys_hard(domain, iova);
drivers/iommu/arm/arm-smmu/arm-smmu.c
1400
return ops->iova_to_phys(ops, iova);
drivers/iommu/arm/arm-smmu/arm-smmu.c
281
static void arm_smmu_tlb_inv_range_s1(unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu/arm-smmu.c
293
iova = (iova >> 12) << 12;
drivers/iommu/arm/arm-smmu/arm-smmu.c
294
iova |= cfg->asid;
drivers/iommu/arm/arm-smmu/arm-smmu.c
296
arm_smmu_cb_write(smmu, idx, reg, iova);
drivers/iommu/arm/arm-smmu/arm-smmu.c
297
iova += granule;
drivers/iommu/arm/arm-smmu/arm-smmu.c
300
iova >>= 12;
drivers/iommu/arm/arm-smmu/arm-smmu.c
301
iova |= (u64)cfg->asid << 48;
drivers/iommu/arm/arm-smmu/arm-smmu.c
303
arm_smmu_cb_writeq(smmu, idx, reg, iova);
drivers/iommu/arm/arm-smmu/arm-smmu.c
304
iova += granule >> 12;
drivers/iommu/arm/arm-smmu/arm-smmu.c
309
static void arm_smmu_tlb_inv_range_s2(unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu/arm-smmu.c
319
iova >>= 12;
drivers/iommu/arm/arm-smmu/arm-smmu.c
322
arm_smmu_cb_writeq(smmu, idx, reg, iova);
drivers/iommu/arm/arm-smmu/arm-smmu.c
324
arm_smmu_cb_write(smmu, idx, reg, iova);
drivers/iommu/arm/arm-smmu/arm-smmu.c
325
iova += granule >> 12;
drivers/iommu/arm/arm-smmu/arm-smmu.c
329
static void arm_smmu_tlb_inv_walk_s1(unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu/arm-smmu.c
338
arm_smmu_tlb_inv_range_s1(iova, size, granule, cookie,
drivers/iommu/arm/arm-smmu/arm-smmu.c
345
unsigned long iova, size_t granule,
drivers/iommu/arm/arm-smmu/arm-smmu.c
348
arm_smmu_tlb_inv_range_s1(iova, granule, granule, cookie,
drivers/iommu/arm/arm-smmu/arm-smmu.c
352
static void arm_smmu_tlb_inv_walk_s2(unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu/arm-smmu.c
355
arm_smmu_tlb_inv_range_s2(iova, size, granule, cookie,
drivers/iommu/arm/arm-smmu/arm-smmu.c
361
unsigned long iova, size_t granule,
drivers/iommu/arm/arm-smmu/arm-smmu.c
364
arm_smmu_tlb_inv_range_s2(iova, granule, granule, cookie,
drivers/iommu/arm/arm-smmu/arm-smmu.c
368
static void arm_smmu_tlb_inv_walk_s2_v1(unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu/arm-smmu.c
381
unsigned long iova, size_t granule,
drivers/iommu/arm/arm-smmu/arm-smmu.c
415
cfi->iova = arm_smmu_cb_readq(smmu, idx, ARM_SMMU_CB_FAR);
drivers/iommu/arm/arm-smmu/arm-smmu.c
426
cfi->fsr, cfi->iova, cfi->fsynr, cfi->cbfrsynra, idx);
drivers/iommu/arm/arm-smmu/arm-smmu.c
470
ret = report_iommu_fault(&smmu_domain->domain, NULL, cfi.iova,
drivers/iommu/arm/arm-smmu/arm-smmu.h
552
unsigned long iova;
drivers/iommu/arm/arm-smmu/qcom_iommu.c
147
static void qcom_iommu_tlb_inv_range_nosync(unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu/qcom_iommu.c
160
iova = (iova >> 12) << 12;
drivers/iommu/arm/arm-smmu/qcom_iommu.c
161
iova |= ctx->asid;
drivers/iommu/arm/arm-smmu/qcom_iommu.c
163
iommu_writel(ctx, reg, iova);
drivers/iommu/arm/arm-smmu/qcom_iommu.c
164
iova += granule;
drivers/iommu/arm/arm-smmu/qcom_iommu.c
169
static void qcom_iommu_tlb_flush_walk(unsigned long iova, size_t size,
drivers/iommu/arm/arm-smmu/qcom_iommu.c
172
qcom_iommu_tlb_inv_range_nosync(iova, size, granule, false, cookie);
drivers/iommu/arm/arm-smmu/qcom_iommu.c
177
unsigned long iova, size_t granule,
drivers/iommu/arm/arm-smmu/qcom_iommu.c
180
qcom_iommu_tlb_inv_range_nosync(iova, granule, granule, true, cookie);
drivers/iommu/arm/arm-smmu/qcom_iommu.c
193
u64 iova;
drivers/iommu/arm/arm-smmu/qcom_iommu.c
201
iova = iommu_readq(ctx, ARM_SMMU_CB_FAR);
drivers/iommu/arm/arm-smmu/qcom_iommu.c
203
if (!report_iommu_fault(ctx->domain, ctx->dev, iova, 0)) {
drivers/iommu/arm/arm-smmu/qcom_iommu.c
207
fsr, iova, fsynr, ctx->asid);
drivers/iommu/arm/arm-smmu/qcom_iommu.c
429
static int qcom_iommu_map(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/arm/arm-smmu/qcom_iommu.c
442
ret = ops->map_pages(ops, iova, paddr, pgsize, pgcount, prot, GFP_ATOMIC, mapped);
drivers/iommu/arm/arm-smmu/qcom_iommu.c
447
static size_t qcom_iommu_unmap(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/arm/arm-smmu/qcom_iommu.c
466
ret = ops->unmap_pages(ops, iova, pgsize, pgcount, gather);
drivers/iommu/arm/arm-smmu/qcom_iommu.c
493
dma_addr_t iova)
drivers/iommu/arm/arm-smmu/qcom_iommu.c
504
ret = ops->iova_to_phys(ops, iova);
drivers/iommu/dma-iommu.c
1001
sgt->sgl->dma_address = iova;
drivers/iommu/dma-iommu.c
1008
iommu_dma_free_iova(domain, iova, size, NULL);
drivers/iommu/dma-iommu.c
1225
dma_addr_t iova, dma_mask = dma_get_mask(dev);
drivers/iommu/dma-iommu.c
1246
iova = __iommu_dma_map(dev, phys, size, prot, dma_mask);
drivers/iommu/dma-iommu.c
1247
if (iova == DMA_MAPPING_ERROR &&
drivers/iommu/dma-iommu.c
1250
return iova;
drivers/iommu/dma-iommu.c
1421
dma_addr_t iova;
drivers/iommu/dma-iommu.c
1507
iova = iommu_dma_alloc_iova(domain, iova_len, dma_get_mask(dev), dev);
drivers/iommu/dma-iommu.c
1508
if (!iova) {
drivers/iommu/dma-iommu.c
1517
ret = iommu_map_sg(domain, iova, sg, nents, prot, GFP_ATOMIC);
drivers/iommu/dma-iommu.c
1521
return __finalise_sg(dev, sg, nents, iova);
drivers/iommu/dma-iommu.c
1524
iommu_dma_free_iova(domain, iova, iova_len, NULL);
drivers/iommu/dma-iommu.c
2204
dma_addr_t iova;
drivers/iommu/dma-iommu.c
2217
iova = iommu_dma_alloc_iova(domain, size, dma_get_mask(dev), dev);
drivers/iommu/dma-iommu.c
2218
if (!iova)
drivers/iommu/dma-iommu.c
2221
if (iommu_map(domain, iova, msi_addr, size, prot, GFP_KERNEL))
drivers/iommu/dma-iommu.c
2226
msi_page->iova = iova;
drivers/iommu/dma-iommu.c
2231
iommu_dma_free_iova(domain, iova, size, NULL);
drivers/iommu/dma-iommu.c
2253
msi_desc_set_iommu_msi_iova(desc, msi_page->iova,
drivers/iommu/dma-iommu.c
43
dma_addr_t iova;
drivers/iommu/dma-iommu.c
489
msi_page->iova = start;
drivers/iommu/dma-iommu.c
765
unsigned long shift, iova_len, iova;
drivers/iommu/dma-iommu.c
792
iova = alloc_iova_fast(iovad, iova_len,
drivers/iommu/dma-iommu.c
794
if (iova)
drivers/iommu/dma-iommu.c
801
iova = alloc_iova_fast(iovad, iova_len, dma_limit >> shift, true);
drivers/iommu/dma-iommu.c
803
return (dma_addr_t)iova << shift;
drivers/iommu/dma-iommu.c
806
static void iommu_dma_free_iova(struct iommu_domain *domain, dma_addr_t iova,
drivers/iommu/dma-iommu.c
815
queue_iova(domain->iova_cookie, iova_pfn(iovad, iova),
drivers/iommu/dma-iommu.c
819
free_iova_fast(iovad, iova_pfn(iovad, iova),
drivers/iommu/dma-iommu.c
853
dma_addr_t iova;
drivers/iommu/dma-iommu.c
866
iova = iommu_dma_alloc_iova(domain, size, dma_mask, dev);
drivers/iommu/dma-iommu.c
867
if (!iova)
drivers/iommu/dma-iommu.c
870
if (iommu_map(domain, iova, phys - iova_off, size, prot, GFP_ATOMIC)) {
drivers/iommu/dma-iommu.c
871
iommu_dma_free_iova(domain, iova, size, NULL);
drivers/iommu/dma-iommu.c
874
return iova + iova_off;
drivers/iommu/dma-iommu.c
950
dma_addr_t iova;
drivers/iommu/dma-iommu.c
974
iova = iommu_dma_alloc_iova(domain, size, dev->coherent_dma_mask, dev);
drivers/iommu/dma-iommu.c
975
if (!iova)
drivers/iommu/dma-iommu.c
996
ret = iommu_map_sg(domain, iova, sgt->sgl, sgt->orig_nents, ioprot,
drivers/iommu/exynos-iommu.c
101
#define section_offs(iova) (iova & (SECT_SIZE - 1))
drivers/iommu/exynos-iommu.c
103
#define lpage_offs(iova) (iova & (LPAGE_SIZE - 1))
drivers/iommu/exynos-iommu.c
105
#define spage_offs(iova) (iova & (SPAGE_SIZE - 1))
drivers/iommu/exynos-iommu.c
1082
sysmmu_pte_t *sent, sysmmu_iova_t iova, short *pgcounter)
drivers/iommu/exynos-iommu.c
1085
WARN(1, "Trying mapping on %#08x mapped with 1MiB page", iova);
drivers/iommu/exynos-iommu.c
110
static u32 lv1ent_offset(sysmmu_iova_t iova)
drivers/iommu/exynos-iommu.c
112
return iova >> SECT_ORDER;
drivers/iommu/exynos-iommu.c
1131
sysmmu_tlb_invalidate_flpdcache(data, iova);
drivers/iommu/exynos-iommu.c
1136
return page_entry(sent, iova);
drivers/iommu/exynos-iommu.c
1140
sysmmu_pte_t *sent, sysmmu_iova_t iova,
drivers/iommu/exynos-iommu.c
1145
iova);
drivers/iommu/exynos-iommu.c
115
static u32 lv2ent_offset(sysmmu_iova_t iova)
drivers/iommu/exynos-iommu.c
1152
iova);
drivers/iommu/exynos-iommu.c
117
return (iova >> SPAGE_ORDER) & (NUM_LV2ENTRIES - 1);
drivers/iommu/exynos-iommu.c
1170
sysmmu_tlb_invalidate_flpdcache(data, iova);
drivers/iommu/exynos-iommu.c
1243
sysmmu_iova_t iova = (sysmmu_iova_t)l_iova;
drivers/iommu/exynos-iommu.c
1252
entry = section_entry(domain->pgtable, iova);
drivers/iommu/exynos-iommu.c
1255
ret = lv1set_section(domain, entry, iova, paddr, prot,
drivers/iommu/exynos-iommu.c
1256
&domain->lv2entcnt[lv1ent_offset(iova)]);
drivers/iommu/exynos-iommu.c
1260
pent = alloc_lv2entry(domain, entry, iova,
drivers/iommu/exynos-iommu.c
1261
&domain->lv2entcnt[lv1ent_offset(iova)]);
drivers/iommu/exynos-iommu.c
1267
&domain->lv2entcnt[lv1ent_offset(iova)]);
drivers/iommu/exynos-iommu.c
1272
__func__, ret, size, iova);
drivers/iommu/exynos-iommu.c
1282
sysmmu_iova_t iova, size_t size)
drivers/iommu/exynos-iommu.c
1290
sysmmu_tlb_invalidate_entry(data, iova, size);
drivers/iommu/exynos-iommu.c
1300
sysmmu_iova_t iova = (sysmmu_iova_t)l_iova;
drivers/iommu/exynos-iommu.c
1309
ent = section_entry(domain->pgtable, iova);
drivers/iommu/exynos-iommu.c
1331
ent = page_entry(ent, iova);
drivers/iommu/exynos-iommu.c
1341
domain->lv2entcnt[lv1ent_offset(iova)] += 1;
drivers/iommu/exynos-iommu.c
1359
domain->lv2entcnt[lv1ent_offset(iova)] += SPAGES_PER_LPAGE;
drivers/iommu/exynos-iommu.c
1363
exynos_iommu_tlb_invalidate_entry(domain, iova, size);
drivers/iommu/exynos-iommu.c
1370
__func__, size, iova, err_pgsize);
drivers/iommu/exynos-iommu.c
1376
dma_addr_t iova)
drivers/iommu/exynos-iommu.c
1385
entry = section_entry(domain->pgtable, iova);
drivers/iommu/exynos-iommu.c
1388
phys = section_phys(entry) + section_offs(iova);
drivers/iommu/exynos-iommu.c
1390
entry = page_entry(entry, iova);
drivers/iommu/exynos-iommu.c
1393
phys = lpage_phys(entry) + lpage_offs(iova);
drivers/iommu/exynos-iommu.c
1395
phys = spage_phys(entry) + spage_offs(iova);
drivers/iommu/exynos-iommu.c
181
static sysmmu_pte_t *section_entry(sysmmu_pte_t *pgtable, sysmmu_iova_t iova)
drivers/iommu/exynos-iommu.c
183
return pgtable + lv1ent_offset(iova);
drivers/iommu/exynos-iommu.c
186
static sysmmu_pte_t *page_entry(sysmmu_pte_t *sent, sysmmu_iova_t iova)
drivers/iommu/exynos-iommu.c
189
lv2table_base(sent)) + lv2ent_offset(iova);
drivers/iommu/exynos-iommu.c
455
sysmmu_iova_t iova, unsigned int num_inv)
drivers/iommu/exynos-iommu.c
461
writel((iova & SPAGE_MASK) | 1,
drivers/iommu/exynos-iommu.c
463
iova += SPAGE_SIZE;
drivers/iommu/exynos-iommu.c
466
writel(iova & SPAGE_MASK, SYSMMU_REG(data, flush_start));
drivers/iommu/exynos-iommu.c
467
writel((iova & SPAGE_MASK) + (num_inv - 1) * SPAGE_SIZE,
drivers/iommu/exynos-iommu.c
673
sysmmu_iova_t iova)
drivers/iommu/exynos-iommu.c
684
__sysmmu_tlb_invalidate_entry(data, iova, 1);
drivers/iommu/exynos-iommu.c
693
sysmmu_iova_t iova, size_t size)
drivers/iommu/exynos-iommu.c
717
__sysmmu_tlb_invalidate_entry(data, iova, num_inv);
drivers/iommu/fsl_pamu_domain.c
173
dma_addr_t iova)
drivers/iommu/fsl_pamu_domain.c
175
if (iova < domain->geometry.aperture_start ||
drivers/iommu/fsl_pamu_domain.c
176
iova > domain->geometry.aperture_end)
drivers/iommu/fsl_pamu_domain.c
178
return iova;
drivers/iommu/generic_pt/iommu_pt.h
1109
static size_t NS(unmap_range)(struct pt_iommu *iommu_table, dma_addr_t iova,
drivers/iommu/generic_pt/iommu_pt.h
1121
ret = make_range(common_from_iommu(iommu_table), &range, iova, len);
drivers/iommu/generic_pt/iommu_pt.h
1127
gather_range_pending(&unmap.pending, iommu_table, iova, unmap.unmapped);
drivers/iommu/generic_pt/iommu_pt.h
116
unsigned long iova, unsigned long len)
drivers/iommu/generic_pt/iommu_pt.h
123
if (check_add_overflow(iova, len - 1, &last))
drivers/iommu/generic_pt/iommu_pt.h
126
*range = pt_make_range(common, iova, last);
drivers/iommu/generic_pt/iommu_pt.h
127
if (sizeof(iova) > sizeof(range->va)) {
drivers/iommu/generic_pt/iommu_pt.h
128
if (unlikely(range->va != iova || range->last_va != last))
drivers/iommu/generic_pt/iommu_pt.h
135
struct pt_range *range, u64 iova,
drivers/iommu/generic_pt/iommu_pt.h
138
if (unlikely(iova > ULONG_MAX || len > ULONG_MAX))
drivers/iommu/generic_pt/iommu_pt.h
140
return make_range_ul(common, range, iova, len);
drivers/iommu/generic_pt/iommu_pt.h
147
#define make_range_no_check(common, range, iova, len) \
drivers/iommu/generic_pt/iommu_pt.h
150
if (sizeof(iova) > sizeof(unsigned long) || \
drivers/iommu/generic_pt/iommu_pt.h
152
ret = make_range_u64(common, range, iova, len); \
drivers/iommu/generic_pt/iommu_pt.h
154
ret = make_range_ul(common, range, iova, len); \
drivers/iommu/generic_pt/iommu_pt.h
158
#define make_range(common, range, iova, len) \
drivers/iommu/generic_pt/iommu_pt.h
160
int ret = make_range_no_check(common, range, iova, len); \
drivers/iommu/generic_pt/iommu_pt.h
217
dma_addr_t iova)
drivers/iommu/generic_pt/iommu_pt.h
225
ret = make_range(common_from_iommu(iommu_table), &range, iova, 1);
drivers/iommu/generic_pt/iommu_pt.h
316
unsigned long iova, size_t size,
drivers/iommu/generic_pt/iommu_pt.h
333
ret = make_range(common_from_iommu(iommu_table), &range, iova, size);
drivers/iommu/generic_pt/iommu_pt.h
362
dma_addr_t iova)
drivers/iommu/generic_pt/iommu_pt.h
367
ret = make_range(common_from_iommu(iommu_table), &range, iova, 1);
drivers/iommu/generic_pt/iommu_pt.h
69
struct pt_iommu *iommu_table, pt_vaddr_t iova,
drivers/iommu/generic_pt/iommu_pt.h
89
iommu_iotlb_gather_is_disjoint(iotlb_gather, iova, len)) {
drivers/iommu/generic_pt/iommu_pt.h
930
static int NS(map_range)(struct pt_iommu *iommu_table, dma_addr_t iova,
drivers/iommu/generic_pt/iommu_pt.h
962
ret = make_range_no_check(common, &range, iova, len);
drivers/iommu/generic_pt/iommu_pt.h
969
if (log2_mod(iova | paddr, PAGE_SHIFT))
drivers/iommu/generic_pt/iommu_pt.h
97
iommu_iotlb_gather_add_range(iotlb_gather, iova, len);
drivers/iommu/intel/debugfs.c
309
dump_page_info(struct seq_file *m, unsigned long iova, u64 *path)
drivers/iommu/intel/debugfs.c
312
iova >> VTD_PAGE_SHIFT, path[5], path[4], path[3]);
drivers/iommu/intel/iommu.c
3515
unsigned long iova, size_t size)
drivers/iommu/intel/iommu.c
3520
cache_tag_flush_range_np(dmar_domain, iova, iova + size - 1);
drivers/iommu/io-pgtable-arm-selftests.c
103
if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
drivers/iommu/io-pgtable-arm-selftests.c
106
iova += SZ_1G;
drivers/iommu/io-pgtable-arm-selftests.c
110
iova = 0;
drivers/iommu/io-pgtable-arm-selftests.c
114
if (ops->unmap_pages(ops, iova, size, 1, NULL) != size)
drivers/iommu/io-pgtable-arm-selftests.c
117
if (ops->iova_to_phys(ops, iova + 42))
drivers/iommu/io-pgtable-arm-selftests.c
121
if (ops->map_pages(ops, iova, iova, size, 1,
drivers/iommu/io-pgtable-arm-selftests.c
125
if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
drivers/iommu/io-pgtable-arm-selftests.c
128
iova += SZ_1G;
drivers/iommu/io-pgtable-arm-selftests.c
137
iova = (1UL << cfg->ias) - size;
drivers/iommu/io-pgtable-arm-selftests.c
138
if (ops->map_pages(ops, iova, iova, size, 1,
drivers/iommu/io-pgtable-arm-selftests.c
145
if (ops->unmap_pages(ops, iova, size, 1, NULL) != size)
drivers/iommu/io-pgtable-arm-selftests.c
26
static void dummy_tlb_flush(unsigned long iova, size_t size,
drivers/iommu/io-pgtable-arm-selftests.c
34
unsigned long iova, size_t granule,
drivers/iommu/io-pgtable-arm-selftests.c
37
dummy_tlb_flush(iova, granule, granule, cookie);
drivers/iommu/io-pgtable-arm-selftests.c
59
unsigned long iova;
drivers/iommu/io-pgtable-arm-selftests.c
87
iova = 0;
drivers/iommu/io-pgtable-arm-selftests.c
91
if (ops->map_pages(ops, iova, iova, size, 1,
drivers/iommu/io-pgtable-arm-selftests.c
98
if (!ops->map_pages(ops, iova, iova + size, size, 1,
drivers/iommu/io-pgtable-arm-v7s.c
395
unsigned long iova, phys_addr_t paddr, int prot,
drivers/iommu/io-pgtable-arm-v7s.c
411
tblp = ptep - ARM_V7S_LVL_IDX(iova, lvl, cfg);
drivers/iommu/io-pgtable-arm-v7s.c
412
if (WARN_ON(__arm_v7s_unmap(data, NULL, iova + i * sz,
drivers/iommu/io-pgtable-arm-v7s.c
460
static int __arm_v7s_map(struct arm_v7s_io_pgtable *data, unsigned long iova,
drivers/iommu/io-pgtable-arm-v7s.c
469
ptep += ARM_V7S_LVL_IDX(iova, lvl, cfg);
drivers/iommu/io-pgtable-arm-v7s.c
473
return arm_v7s_init_pte(data, iova, paddr, prot,
drivers/iommu/io-pgtable-arm-v7s.c
504
return __arm_v7s_map(data, iova, paddr, size, prot, lvl + 1, cptep, gfp);
drivers/iommu/io-pgtable-arm-v7s.c
507
static int arm_v7s_map_pages(struct io_pgtable_ops *ops, unsigned long iova,
drivers/iommu/io-pgtable-arm-v7s.c
514
if (WARN_ON(iova >= (1ULL << data->iop.cfg.ias) ||
drivers/iommu/io-pgtable-arm-v7s.c
522
ret = __arm_v7s_map(data, iova, paddr, pgsize, prot, 1, data->pgd,
drivers/iommu/io-pgtable-arm-v7s.c
527
iova += pgsize;
drivers/iommu/io-pgtable-arm-v7s.c
559
unsigned long iova, size_t size, int lvl,
drivers/iommu/io-pgtable-arm-v7s.c
570
idx = ARM_V7S_LVL_IDX(iova, lvl, &iop->cfg);
drivers/iommu/io-pgtable-arm-v7s.c
602
io_pgtable_tlb_flush_walk(iop, iova, blk_size,
drivers/iommu/io-pgtable-arm-v7s.c
607
io_pgtable_tlb_add_page(iop, gather, iova, blk_size);
drivers/iommu/io-pgtable-arm-v7s.c
609
iova += blk_size;
drivers/iommu/io-pgtable-arm-v7s.c
619
return __arm_v7s_unmap(data, gather, iova, size, lvl + 1, ptep);
drivers/iommu/io-pgtable-arm-v7s.c
622
static size_t arm_v7s_unmap_pages(struct io_pgtable_ops *ops, unsigned long iova,
drivers/iommu/io-pgtable-arm-v7s.c
629
if (WARN_ON(iova >= (1ULL << data->iop.cfg.ias)))
drivers/iommu/io-pgtable-arm-v7s.c
633
ret = __arm_v7s_unmap(data, gather, iova, pgsize, 1, data->pgd);
drivers/iommu/io-pgtable-arm-v7s.c
638
iova += pgsize;
drivers/iommu/io-pgtable-arm-v7s.c
645
unsigned long iova)
drivers/iommu/io-pgtable-arm-v7s.c
653
ptep += ARM_V7S_LVL_IDX(iova, ++lvl, &data->iop.cfg);
drivers/iommu/io-pgtable-arm-v7s.c
664
return iopte_to_paddr(pte, lvl, &data->iop.cfg) | (iova & ~mask);
drivers/iommu/io-pgtable-arm-v7s.c
790
static __noipa void __init dummy_tlb_flush(unsigned long iova, size_t size,
drivers/iommu/io-pgtable-arm-v7s.c
798
unsigned long iova,
drivers/iommu/io-pgtable-arm-v7s.c
802
dummy_tlb_flush(iova, granule, granule, cookie);
drivers/iommu/io-pgtable-arm-v7s.c
828
unsigned int iova, size;
drivers/iommu/io-pgtable-arm-v7s.c
858
iova = 0;
drivers/iommu/io-pgtable-arm-v7s.c
861
if (ops->map_pages(ops, iova, iova, size, 1,
drivers/iommu/io-pgtable-arm-v7s.c
868
if (!ops->map_pages(ops, iova, iova + size, size, 1,
drivers/iommu/io-pgtable-arm-v7s.c
873
if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
drivers/iommu/io-pgtable-arm-v7s.c
876
iova += SZ_16M;
drivers/iommu/io-pgtable-arm-v7s.c
880
iova = 0;
drivers/iommu/io-pgtable-arm-v7s.c
884
if (ops->unmap_pages(ops, iova, size, 1, NULL) != size)
drivers/iommu/io-pgtable-arm-v7s.c
887
if (ops->iova_to_phys(ops, iova + 42))
drivers/iommu/io-pgtable-arm-v7s.c
891
if (ops->map_pages(ops, iova, iova, size, 1, IOMMU_WRITE,
drivers/iommu/io-pgtable-arm-v7s.c
895
if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
drivers/iommu/io-pgtable-arm-v7s.c
898
iova += SZ_16M;
drivers/iommu/io-pgtable-arm.c
368
unsigned long iova, size_t size, size_t pgcount,
drivers/iommu/io-pgtable-arm.c
393
unsigned long iova, phys_addr_t paddr,
drivers/iommu/io-pgtable-arm.c
412
tblp = ptep - ARM_LPAE_LVL_IDX(iova, lvl, data);
drivers/iommu/io-pgtable-arm.c
413
if (__arm_lpae_unmap(data, NULL, iova + i * sz, sz, 1,
drivers/iommu/io-pgtable-arm.c
456
static int __arm_lpae_map(struct arm_lpae_io_pgtable *data, unsigned long iova,
drivers/iommu/io-pgtable-arm.c
468
map_idx_start = ARM_LPAE_LVL_IDX(iova, lvl, data);
drivers/iommu/io-pgtable-arm.c
475
ret = arm_lpae_init_pte(data, iova, paddr, prot, lvl, num_entries, ptep);
drivers/iommu/io-pgtable-arm.c
509
return __arm_lpae_map(data, iova, paddr, size, pgcount, prot, lvl + 1,
drivers/iommu/io-pgtable-arm.c
583
static int arm_lpae_map_pages(struct io_pgtable_ops *ops, unsigned long iova,
drivers/iommu/io-pgtable-arm.c
592
long iaext = (s64)iova >> cfg->ias;
drivers/iommu/io-pgtable-arm.c
606
ret = __arm_lpae_map(data, iova, paddr, pgsize, pgcount, prot, lvl,
drivers/iommu/io-pgtable-arm.c
658
unsigned long iova, size_t size, size_t pgcount,
drivers/iommu/io-pgtable-arm.c
669
unmap_idx_start = ARM_LPAE_LVL_IDX(iova, lvl, data);
drivers/iommu/io-pgtable-arm.c
694
io_pgtable_tlb_flush_walk(iop, iova + i * size, size,
drivers/iommu/io-pgtable-arm.c
705
io_pgtable_tlb_add_page(iop, gather, iova + j * size, size);
drivers/iommu/io-pgtable-arm.c
715
return __arm_lpae_unmap(data, gather, iova, size, pgcount, lvl + 1, ptep);
drivers/iommu/io-pgtable-arm.c
718
static size_t arm_lpae_unmap_pages(struct io_pgtable_ops *ops, unsigned long iova,
drivers/iommu/io-pgtable-arm.c
725
long iaext = (s64)iova >> cfg->ias;
drivers/iommu/io-pgtable-arm.c
735
return __arm_lpae_unmap(data, gather, iova, pgsize, pgcount,
drivers/iommu/io-pgtable-arm.c
769
unsigned long iova)
drivers/iommu/io-pgtable-arm.c
776
.addr = iova,
drivers/iommu/io-pgtable-arm.c
777
.end = iova + 1,
drivers/iommu/io-pgtable-arm.c
785
iova &= (ARM_LPAE_BLOCK_SIZE(d.lvl, data) - 1);
drivers/iommu/io-pgtable-arm.c
786
return iopte_to_paddr(d.pte, data) | iova;
drivers/iommu/io-pgtable-arm.c
797
static int arm_lpae_pgtable_walk(struct io_pgtable_ops *ops, unsigned long iova,
drivers/iommu/io-pgtable-arm.c
804
.addr = iova,
drivers/iommu/io-pgtable-arm.c
805
.end = iova + 1,
drivers/iommu/io-pgtable-arm.c
880
unsigned long iova, size_t size,
drivers/iommu/io-pgtable-arm.c
891
.addr = iova,
drivers/iommu/io-pgtable-arm.c
892
.end = iova + size,
drivers/iommu/io-pgtable-arm.c
899
if (WARN_ON((iova + size - 1) & ~(BIT(cfg->ias) - 1)))
drivers/iommu/io-pgtable-dart.c
113
unsigned long iova, phys_addr_t paddr,
drivers/iommu/io-pgtable-dart.c
161
static int dart_get_index(struct dart_io_pgtable *data, unsigned long iova, int level)
drivers/iommu/io-pgtable-dart.c
163
return (iova >> (level * data->bits_per_level + ilog2(sizeof(dart_iopte)))) &
drivers/iommu/io-pgtable-dart.c
167
static int dart_get_last_index(struct dart_io_pgtable *data, unsigned long iova)
drivers/iommu/io-pgtable-dart.c
170
return (iova >> (data->bits_per_level + ilog2(sizeof(dart_iopte)))) &
drivers/iommu/io-pgtable-dart.c
174
static dart_iopte *dart_get_last(struct dart_io_pgtable *data, unsigned long iova)
drivers/iommu/io-pgtable-dart.c
178
int tbl = dart_get_index(data, iova, level);
drivers/iommu/io-pgtable-dart.c
188
ptep += dart_get_index(data, iova, level);
drivers/iommu/io-pgtable-dart.c
226
static int dart_map_pages(struct io_pgtable_ops *ops, unsigned long iova,
drivers/iommu/io-pgtable-dart.c
247
tbl = dart_get_index(data, iova, level);
drivers/iommu/io-pgtable-dart.c
254
ptep += dart_get_index(data, iova, level);
drivers/iommu/io-pgtable-dart.c
276
map_idx_start = dart_get_last_index(data, iova);
drivers/iommu/io-pgtable-dart.c
280
ret = dart_init_pte(data, iova, paddr, prot, num_entries, ptep);
drivers/iommu/io-pgtable-dart.c
293
static size_t dart_unmap_pages(struct io_pgtable_ops *ops, unsigned long iova,
drivers/iommu/io-pgtable-dart.c
305
ptep = dart_get_last(data, iova);
drivers/iommu/io-pgtable-dart.c
311
unmap_idx_start = dart_get_last_index(data, iova);
drivers/iommu/io-pgtable-dart.c
327
iova + i * pgsize, pgsize);
drivers/iommu/io-pgtable-dart.c
337
unsigned long iova)
drivers/iommu/io-pgtable-dart.c
342
ptep = dart_get_last(data, iova);
drivers/iommu/io-pgtable-dart.c
348
ptep += dart_get_last_index(data, iova);
drivers/iommu/io-pgtable-dart.c
353
iova &= (data->iop.cfg.pgsize_bitmap - 1);
drivers/iommu/io-pgtable-dart.c
354
return iopte_to_paddr(pte, data) | iova;
drivers/iommu/iommu-debug-pagealloc.c
112
unsigned long iova, size_t size, bool inc)
drivers/iommu/iommu-debug-pagealloc.c
117
if (WARN_ON(check_add_overflow(iova, size, &end)))
drivers/iommu/iommu-debug-pagealloc.c
121
phys_addr_t phys = iommu_iova_to_phys(domain, iova + off);
drivers/iommu/iommu-debug-pagealloc.c
134
unsigned long iova, size_t size)
drivers/iommu/iommu-debug-pagealloc.c
136
__iommu_debug_update_iova(domain, iova, size, false);
drivers/iommu/iommu-debug-pagealloc.c
140
unsigned long iova, size_t size,
drivers/iommu/iommu-debug-pagealloc.c
147
__iommu_debug_update_iova(domain, iova + unmapped,
drivers/iommu/iommu-priv.h
110
unsigned long iova, size_t size)
drivers/iommu/iommu-priv.h
115
unsigned long iova, size_t size,
drivers/iommu/iommu-priv.h
75
unsigned long iova, size_t size);
drivers/iommu/iommu-priv.h
77
unsigned long iova, size_t size, size_t unmapped);
drivers/iommu/iommu-priv.h
87
unsigned long iova, size_t size)
drivers/iommu/iommu-priv.h
90
__iommu_debug_unmap_begin(domain, iova, size);
drivers/iommu/iommu-priv.h
94
unsigned long iova, size_t size,
drivers/iommu/iommu-priv.h
98
__iommu_debug_unmap_end(domain, iova, size, unmapped);
drivers/iommu/iommu.c
2547
phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova)
drivers/iommu/iommu.c
2550
return iova;
drivers/iommu/iommu.c
2555
return domain->ops->iova_to_phys(domain, iova);
drivers/iommu/iommu.c
2559
static size_t iommu_pgsize(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/iommu.c
2566
unsigned long addr_merge = paddr | iova;
drivers/iommu/iommu.c
2596
if ((iova ^ paddr) & (pgsize_next - 1))
drivers/iommu/iommu.c
2616
unsigned long iova, phys_addr_t paddr,
drivers/iommu/iommu.c
2635
if (!IS_ALIGNED(iova | paddr | size, min_pagesz)) {
drivers/iommu/iommu.c
2637
iova, &paddr, size, min_pagesz);
drivers/iommu/iommu.c
2641
pr_debug("map: iova 0x%lx pa %pa size 0x%zx\n", iova, &paddr, size);
drivers/iommu/iommu.c
2646
pgsize = iommu_pgsize(domain, iova, paddr, size, &count);
drivers/iommu/iommu.c
2649
iova, &paddr, pgsize, count);
drivers/iommu/iommu.c
2650
ret = ops->map_pages(domain, iova, paddr, pgsize, count, prot,
drivers/iommu/iommu.c
2661
iova += op_mapped;
drivers/iommu/iommu.c
2667
int iommu_sync_map(struct iommu_domain *domain, unsigned long iova, size_t size)
drivers/iommu/iommu.c
2673
return ops->iotlb_sync_map(domain, iova, size);
drivers/iommu/iommu.c
2676
int iommu_map_nosync(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/iommu.c
2693
ret = pt->ops->map_range(pt, iova, paddr, size, prot, gfp,
drivers/iommu/iommu.c
2696
ret = __iommu_map_domain_pgtbl(domain, iova, paddr, size, prot,
drivers/iommu/iommu.c
2699
trace_map(iova, paddr, mapped);
drivers/iommu/iommu.c
2702
iommu_unmap(domain, iova, mapped);
drivers/iommu/iommu.c
2708
int iommu_map(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/iommu.c
2713
ret = iommu_map_nosync(domain, iova, paddr, size, prot, gfp);
drivers/iommu/iommu.c
2717
ret = iommu_sync_map(domain, iova, size);
drivers/iommu/iommu.c
2719
iommu_unmap(domain, iova, size);
drivers/iommu/iommu.c
2726
__iommu_unmap_domain_pgtbl(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/iommu.c
2744
if (!IS_ALIGNED(iova | size, min_pagesz)) {
drivers/iommu/iommu.c
2746
iova, size, min_pagesz);
drivers/iommu/iommu.c
2750
pr_debug("unmap this: iova 0x%lx size 0x%zx\n", iova, size);
drivers/iommu/iommu.c
2759
pgsize = iommu_pgsize(domain, iova, iova, size - unmapped, &count);
drivers/iommu/iommu.c
2760
unmapped_page = ops->unmap_pages(domain, iova, pgsize, count, iotlb_gather);
drivers/iommu/iommu.c
2765
iova, unmapped_page);
drivers/iommu/iommu.c
2771
iommu_iotlb_gather_add_range(iotlb_gather, iova, size);
drivers/iommu/iommu.c
2773
iova += unmapped_page;
drivers/iommu/iommu.c
2780
static size_t __iommu_unmap(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/iommu.c
2791
iommu_debug_unmap_begin(domain, iova, size);
drivers/iommu/iommu.c
2794
unmapped = pt->ops->unmap_range(pt, iova, size, iotlb_gather);
drivers/iommu/iommu.c
2796
unmapped = __iommu_unmap_domain_pgtbl(domain, iova, size,
drivers/iommu/iommu.c
2798
trace_unmap(iova, size, unmapped);
drivers/iommu/iommu.c
2799
iommu_debug_unmap_end(domain, iova, size, unmapped);
drivers/iommu/iommu.c
2818
unsigned long iova, size_t size)
drivers/iommu/iommu.c
2824
ret = __iommu_unmap(domain, iova, size, &iotlb_gather);
drivers/iommu/iommu.c
2851
unsigned long iova, size_t size,
drivers/iommu/iommu.c
2854
return __iommu_unmap(domain, iova, size, iotlb_gather);
drivers/iommu/iommu.c
2858
ssize_t iommu_map_sg(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/iommu.c
2871
ret = iommu_map_nosync(domain, iova + mapped, start,
drivers/iommu/iommu.c
2895
ret = iommu_sync_map(domain, iova, mapped);
drivers/iommu/iommu.c
2903
iommu_unmap(domain, iova, mapped);
drivers/iommu/iommu.c
2934
unsigned long iova, int flags)
drivers/iommu/iommu.c
2944
ret = domain->handler(domain, dev, iova, flags,
drivers/iommu/iommu.c
2947
trace_io_page_fault(dev, iova, flags);
drivers/iommu/iommufd/device.c
1300
void iommufd_access_notify_unmap(struct io_pagetable *iopt, unsigned long iova,
drivers/iommu/iommufd/device.c
1315
access->ops->unmap(access->data, iova, length);
drivers/iommu/iommufd/device.c
1333
unsigned long iova, unsigned long length)
drivers/iommu/iommufd/device.c
1342
WARN_ON(check_add_overflow(iova, length - 1, &last_iova)))
drivers/iommu/iommufd/device.c
1357
iopt_for_each_contig_area(&iter, area, iopt, iova, last_iova)
drivers/iommu/iommufd/device.c
1408
int iommufd_access_pin_pages(struct iommufd_access *access, unsigned long iova,
drivers/iommu/iommufd/device.c
1427
if (check_add_overflow(iova, length - 1, &last_iova))
drivers/iommu/iommufd/device.c
1438
iopt_for_each_contig_area(&iter, area, iopt, iova, last_iova) {
drivers/iommu/iommufd/device.c
1471
if (iova < iter.cur_iova) {
drivers/iommu/iommufd/device.c
1473
iopt_for_each_contig_area(&iter, area, iopt, iova, last_iova)
drivers/iommu/iommufd/device.c
1500
int iommufd_access_rw(struct iommufd_access *access, unsigned long iova,
drivers/iommu/iommufd/device.c
1511
if (check_add_overflow(iova, length - 1, &last_iova))
drivers/iommu/iommufd/device.c
1522
iopt_for_each_contig_area(&iter, area, iopt, iova, last_iova) {
drivers/iommu/iommufd/driver.c
224
unsigned long iova;
drivers/iommu/iommufd/driver.c
228
iova = msi_map->sw_msi_start + msi_map->pgoff * PAGE_SIZE;
drivers/iommu/iommufd/driver.c
232
rc = iommu_map(hwpt_paging->common.domain, iova,
drivers/iommu/iommufd/driver.c
259
unsigned long iova;
drivers/iommu/iommufd/driver.c
298
iova = msi_map->sw_msi_start + msi_map->pgoff * PAGE_SIZE;
drivers/iommu/iommufd/driver.c
299
msi_desc_set_iommu_msi_iova(desc, iova, PAGE_SHIFT);
drivers/iommu/iommufd/io_pagetable.c
120
static int iopt_alloc_iova(struct io_pagetable *iopt, unsigned long *iova,
drivers/iommu/iommufd/io_pagetable.c
1297
static int iopt_area_split(struct iopt_area *area, unsigned long iova)
drivers/iommu/iommufd/io_pagetable.c
1302
unsigned long new_start = iova + 1;
drivers/iommu/iommufd/io_pagetable.c
1311
if (iova == start_iova || iova == last_iova)
drivers/iommu/iommufd/io_pagetable.c
176
*iova = used_span.start_hole;
drivers/iommu/iommufd/io_pagetable.c
183
static int iopt_check_iova(struct io_pagetable *iopt, unsigned long iova,
drivers/iommu/iommufd/io_pagetable.c
190
if ((iova & (iopt->iova_alignment - 1)))
drivers/iommu/iommufd/io_pagetable.c
193
if (check_add_overflow(iova, length - 1, &last))
drivers/iommu/iommufd/io_pagetable.c
197
if (iopt_reserved_iter_first(iopt, iova, last))
drivers/iommu/iommufd/io_pagetable.c
201
if (iopt_area_iter_first(iopt, iova, last))
drivers/iommu/iommufd/io_pagetable.c
210
struct iopt_pages *pages, unsigned long iova,
drivers/iommu/iommufd/io_pagetable.c
224
area->node.start = iova;
drivers/iommu/iommufd/io_pagetable.c
225
if (check_add_overflow(iova, length - 1, &area->node.last))
drivers/iommu/iommufd/io_pagetable.c
263
unsigned long iova;
drivers/iommu/iommufd/io_pagetable.c
311
iova = *dst_iova;
drivers/iommu/iommufd/io_pagetable.c
313
rc = iopt_insert_area(iopt, elm->area, elm->pages, iova,
drivers/iommu/iommufd/io_pagetable.c
317
iova += elm->length;
drivers/iommu/iommufd/io_pagetable.c
35
unsigned long iova,
drivers/iommu/iommufd/io_pagetable.c
40
iter->cur_iova = iova;
drivers/iommu/iommufd/io_pagetable.c
409
struct iopt_pages *pages, unsigned long *iova,
drivers/iommu/iommufd/io_pagetable.c
42
iter->area = iopt_area_iter_first(iopt, iova, iova);
drivers/iommu/iommufd/io_pagetable.c
425
rc = iopt_map_pages(iopt, &pages_list, length, iova, iommu_prot, flags);
drivers/iommu/iommufd/io_pagetable.c
456
unsigned long *iova, void __user *uptr,
drivers/iommu/iommufd/io_pagetable.c
466
return iopt_map_common(ictx, iopt, pages, iova, length,
drivers/iommu/iommufd/io_pagetable.c
483
unsigned long *iova, int fd, unsigned long start,
drivers/iommu/iommufd/io_pagetable.c
525
return iopt_map_common(ictx, iopt, pages, iova, length,
drivers/iommu/iommufd/io_pagetable.c
537
unsigned long iova, size_t length,
drivers/iommu/iommufd/io_pagetable.c
546
unsigned long last_iova = iova + length - 1;
drivers/iommu/iommufd/io_pagetable.c
550
iopt_for_each_contig_area(&iter, area, arg->iopt, iova, last_iova) {
drivers/iommu/iommufd/io_pagetable.c
580
iter = iova_bitmap_alloc(bitmap->iova, bitmap->length,
drivers/iommu/iommufd/io_pagetable.c
608
if (check_add_overflow(bitmap->iova, bitmap->length - 1, &last_iova))
drivers/iommu/iommufd/io_pagetable.c
611
if (bitmap->iova > ULONG_MAX || last_iova > ULONG_MAX)
drivers/iommu/iommufd/io_pagetable.c
614
if ((bitmap->iova & (iommu_pgsize - 1)) ||
drivers/iommu/iommufd/io_pagetable.c
621
if ((bitmap->iova & (bitmap->page_size - 1)) ||
drivers/iommu/iommufd/io_pagetable.c
700
int iopt_get_pages(struct io_pagetable *iopt, unsigned long iova,
drivers/iommu/iommufd/io_pagetable.c
710
if (check_add_overflow(iova, length - 1, &last_iova))
drivers/iommu/iommufd/io_pagetable.c
714
iopt_for_each_contig_area(&iter, area, iopt, iova, last_iova) {
drivers/iommu/iommufd/io_pagetable.c
848
int iopt_unmap_iova(struct io_pagetable *iopt, unsigned long iova,
drivers/iommu/iommufd/io_pagetable.c
856
if (check_add_overflow(iova, length - 1, &iova_last))
drivers/iommu/iommufd/io_pagetable.c
859
return iopt_unmap_iova_range(iopt, iova, iova_last, unmapped);
drivers/iommu/iommufd/io_pagetable.h
114
unsigned long iova)
drivers/iommu/iommufd/io_pagetable.h
117
WARN_ON(iova < iopt_area_iova(area) ||
drivers/iommu/iommufd/io_pagetable.h
118
iova > iopt_area_last_iova(area));
drivers/iommu/iommufd/io_pagetable.h
119
return (iova - iopt_area_iova(area)) + area->page_offset +
drivers/iommu/iommufd/io_pagetable.h
124
unsigned long iova)
drivers/iommu/iommufd/io_pagetable.h
126
return iopt_area_start_byte(area, iova) / PAGE_SIZE;
drivers/iommu/iommufd/io_pagetable.h
166
unsigned long iova,
drivers/iommu/iommufd/io_pagetable.h
180
#define iopt_for_each_contig_area(iter, area, iopt, iova, last_iova) \
drivers/iommu/iommufd/io_pagetable.h
181
for (area = iopt_area_contig_init(iter, iopt, iova, last_iova); area; \
drivers/iommu/iommufd/ioas.c
207
unsigned long iova = cmd->iova;
drivers/iommu/iommufd/ioas.c
217
if (cmd->iova >= ULONG_MAX || cmd->length >= ULONG_MAX)
drivers/iommu/iommufd/ioas.c
231
rc = iopt_map_file_pages(ucmd->ictx, &ioas->iopt, &iova, cmd->fd,
drivers/iommu/iommufd/ioas.c
237
cmd->iova = iova;
drivers/iommu/iommufd/ioas.c
247
unsigned long iova = cmd->iova;
drivers/iommu/iommufd/ioas.c
257
if (cmd->iova >= ULONG_MAX || cmd->length >= ULONG_MAX)
drivers/iommu/iommufd/ioas.c
270
rc = iopt_map_user_pages(ucmd->ictx, &ioas->iopt, &iova,
drivers/iommu/iommufd/ioas.c
276
cmd->iova = iova;
drivers/iommu/iommufd/ioas.c
290
unsigned long iova;
drivers/iommu/iommufd/ioas.c
325
iova = cmd->dst_iova;
drivers/iommu/iommufd/ioas.c
326
rc = iopt_map_pages(&dst_ioas->iopt, &pages_list, cmd->length, &iova,
drivers/iommu/iommufd/ioas.c
331
cmd->dst_iova = iova;
drivers/iommu/iommufd/ioas.c
351
if (cmd->iova == 0 && cmd->length == U64_MAX) {
drivers/iommu/iommufd/ioas.c
356
if (cmd->iova >= ULONG_MAX || cmd->length >= ULONG_MAX) {
drivers/iommu/iommufd/ioas.c
360
rc = iopt_unmap_iova(&ioas->iopt, cmd->iova, cmd->length,
drivers/iommu/iommufd/iommufd_private.h
101
int iopt_get_pages(struct io_pagetable *iopt, unsigned long iova,
drivers/iommu/iommufd/iommufd_private.h
108
unsigned long *iova, void __user *uptr,
drivers/iommu/iommufd/iommufd_private.h
112
unsigned long *iova, int fd,
drivers/iommu/iommufd/iommufd_private.h
118
int iopt_unmap_iova(struct io_pagetable *iopt, unsigned long iova,
drivers/iommu/iommufd/iommufd_private.h
129
void iommufd_access_notify_unmap(struct io_pagetable *iopt, unsigned long iova,
drivers/iommu/iommufd/iommufd_private.h
714
unsigned int ioas_id, u64 *iova, u32 *flags);
drivers/iommu/iommufd/iommufd_private.h
724
u64 *iova, u32 *flags)
drivers/iommu/iommufd/iommufd_test.h
108
__aligned_u64 iova;
drivers/iommu/iommufd/iommufd_test.h
127
__aligned_u64 iova;
drivers/iommu/iommufd/iommufd_test.h
132
__aligned_u64 iova;
drivers/iommu/iommufd/iommufd_test.h
145
__aligned_u64 iova;
drivers/iommu/iommufd/iova_bitmap.c
115
unsigned long iova;
drivers/iommu/iommufd/iova_bitmap.c
131
unsigned long iova)
drivers/iommu/iommufd/iova_bitmap.c
133
return (iova >> bitmap->mapped.pgshift) /
drivers/iommu/iommufd/iova_bitmap.c
155
return bitmap->iova + iova_bitmap_index_to_offset(bitmap, skip);
drivers/iommu/iommufd/iova_bitmap.c
202
mapped->iova = iova_bitmap_mapped_iova(bitmap);
drivers/iommu/iommufd/iova_bitmap.c
243
struct iova_bitmap *iova_bitmap_alloc(unsigned long iova, size_t length,
drivers/iommu/iommufd/iova_bitmap.c
259
bitmap->iova = iova;
drivers/iommu/iommufd/iova_bitmap.c
261
mapped->iova = iova;
drivers/iommu/iommufd/iova_bitmap.c
320
unsigned long max_iova = bitmap->iova + bitmap->length - 1;
drivers/iommu/iommufd/iova_bitmap.c
321
unsigned long iova = iova_bitmap_mapped_iova(bitmap);
drivers/iommu/iommufd/iova_bitmap.c
333
if (iova + remaining - 1 > max_iova)
drivers/iommu/iommufd/iova_bitmap.c
334
remaining -= ((iova + remaining - 1) - max_iova);
drivers/iommu/iommufd/iova_bitmap.c
343
unsigned long iova, size_t length)
drivers/iommu/iommufd/iova_bitmap.c
346
(iova >= mapped->iova &&
drivers/iommu/iommufd/iova_bitmap.c
347
(iova + length - 1) <= (mapped->iova + mapped->length - 1));
drivers/iommu/iommufd/iova_bitmap.c
356
unsigned long iova)
drivers/iommu/iommufd/iova_bitmap.c
36
unsigned long iova;
drivers/iommu/iommufd/iova_bitmap.c
360
index = iova_bitmap_offset_to_index(bitmap, iova - bitmap->iova);
drivers/iommu/iommufd/iova_bitmap.c
387
return fn(bitmap, bitmap->iova, bitmap->length, opaque);
drivers/iommu/iommufd/iova_bitmap.c
402
unsigned long iova, size_t length)
drivers/iommu/iommufd/iova_bitmap.c
408
if (unlikely(!iova_bitmap_mapped_range(mapped, iova, length))) {
drivers/iommu/iommufd/iova_bitmap.c
414
if (iova_bitmap_advance_to(bitmap, iova))
drivers/iommu/iommufd/iova_bitmap.c
419
cur_bit = ((iova - mapped->iova) >>
drivers/iommu/iommufd/iova_bitmap.c
421
last_bit = (((iova + length - 1) - mapped->iova) >>
drivers/iommu/iommufd/iova_bitmap.c
435
iova += (length - left);
drivers/iommu/iommufd/main.c
482
IOCTL_OP(IOMMU_IOAS_MAP, iommufd_ioas_map, struct iommu_ioas_map, iova),
drivers/iommu/iommufd/main.c
484
struct iommu_ioas_map_file, iova),
drivers/iommu/iommufd/pages.c
225
static void iommu_unmap_nofail(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/iommufd/pages.c
230
ret = iommu_unmap(domain, iova, size);
drivers/iommu/iommufd/pages.c
413
unsigned long iova;
drivers/iommu/iommufd/pages.c
416
iova = iopt_area_index_to_iova(area, start_index);
drivers/iommu/iommufd/pages.c
425
phys = iommu_iova_to_phys(domain, iova) - page_offset;
drivers/iommu/iommufd/pages.c
428
iova += PAGE_SIZE - page_offset;
drivers/iommu/iommufd/pages.c
441
unsigned long iova;
drivers/iommu/iommufd/pages.c
444
iova = iopt_area_index_to_iova(area, start_index);
drivers/iommu/iommufd/pages.c
448
phys = iommu_iova_to_phys(domain, iova) - page_offset;
drivers/iommu/iommufd/pages.c
450
iova += PAGE_SIZE - page_offset;
drivers/iommu/iommufd/pages.c
480
unsigned long iova, phys_addr_t paddr,
drivers/iommu/iommufd/pages.c
483
unsigned long start_iova = iova;
drivers/iommu/iommufd/pages.c
487
WARN_ON(paddr % PAGE_SIZE || iova % PAGE_SIZE ||
drivers/iommu/iommufd/pages.c
491
rc = iommu_map(domain, iova, paddr, PAGE_SIZE, prot,
drivers/iommu/iommufd/pages.c
495
iova += PAGE_SIZE;
drivers/iommu/iommufd/pages.c
502
if (start_iova != iova)
drivers/iommu/iommufd/pages.c
503
iommu_unmap_nofail(domain, start_iova, iova - start_iova);
drivers/iommu/iommufd/pages.c
517
unsigned long iova;
drivers/iommu/iommufd/pages.c
528
next_iova = iova = start_iova =
drivers/iommu/iommufd/pages.c
536
domain, iova,
drivers/iommu/iommufd/pages.c
538
next_iova - iova, iommu_prot);
drivers/iommu/iommufd/pages.c
540
rc = iommu_map(domain, iova,
drivers/iommu/iommufd/pages.c
542
next_iova - iova, iommu_prot,
drivers/iommu/iommufd/pages.c
546
iova = next_iova;
drivers/iommu/iommufd/pages.c
552
if (start_iova != iova)
drivers/iommu/iommufd/pages.c
553
iommu_unmap_nofail(domain, start_iova, iova - start_iova);
drivers/iommu/iommufd/selftest.c
100
unsigned int ioas_id, u64 *iova, u32 *flags)
drivers/iommu/iommufd/selftest.c
111
*iova = __iommufd_test_syz_conv_iova(&ioas->iopt, iova);
drivers/iommu/iommufd/selftest.c
1177
unsigned int mockpt_id, unsigned long iova,
drivers/iommu/iommufd/selftest.c
1191
if (iova % page_size || length % page_size ||
drivers/iommu/iommufd/selftest.c
1217
io_phys = mock->domain.ops->iova_to_phys(&mock->domain, iova);
drivers/iommu/iommufd/selftest.c
1223
iova += page_size;
drivers/iommu/iommufd/selftest.c
1317
unsigned long iova;
drivers/iommu/iommufd/selftest.c
1339
static void iommufd_test_access_unmap(void *data, unsigned long iova,
drivers/iommu/iommufd/selftest.c
1342
unsigned long iova_last = iova + length - 1;
drivers/iommu/iommufd/selftest.c
1349
if (iova > item->iova + item->length - 1 ||
drivers/iommu/iommufd/selftest.c
1350
iova_last < item->iova)
drivers/iommu/iommufd/selftest.c
1353
iommufd_access_unpin_pages(staccess->access, item->iova,
drivers/iommu/iommufd/selftest.c
1375
iommufd_access_unpin_pages(staccess->access, item->iova,
drivers/iommu/iommufd/selftest.c
1530
unsigned int access_id, unsigned long iova,
drivers/iommu/iommufd/selftest.c
1558
iova = iommufd_test_syz_conv_iova(staccess->access,
drivers/iommu/iommufd/selftest.c
1559
&cmd->access_pages.iova);
drivers/iommu/iommufd/selftest.c
1561
npages = (ALIGN(iova + length, PAGE_SIZE) -
drivers/iommu/iommufd/selftest.c
1562
ALIGN_DOWN(iova, PAGE_SIZE)) /
drivers/iommu/iommufd/selftest.c
1580
rc = iommufd_access_pin_pages(staccess->access, iova, length, pages,
drivers/iommu/iommufd/selftest.c
1588
uptr - (iova - ALIGN_DOWN(iova, PAGE_SIZE)), pages,
drivers/iommu/iommufd/selftest.c
1600
item->iova = iova;
drivers/iommu/iommufd/selftest.c
1615
iommufd_access_unpin_pages(staccess->access, iova, length);
drivers/iommu/iommufd/selftest.c
1625
unsigned int access_id, unsigned long iova,
drivers/iommu/iommufd/selftest.c
1660
iova = iommufd_test_syz_conv_iova(staccess->access,
drivers/iommu/iommufd/selftest.c
1661
&cmd->access_rw.iova);
drivers/iommu/iommufd/selftest.c
1663
rc = iommufd_access_rw(staccess->access, iova, tmp, length, flags);
drivers/iommu/iommufd/selftest.c
1684
unsigned long iova, size_t length,
drivers/iommu/iommufd/selftest.c
1695
if (!page_size || !length || iova % page_size || length % page_size ||
drivers/iommu/iommufd/selftest.c
1724
mock->iommu.ops->set_dirty(&mock->iommu, iova + i * page_size);
drivers/iommu/iommufd/selftest.c
2078
ucmd, cmd->id, cmd->check_map.iova,
drivers/iommu/iommufd/selftest.c
2101
ucmd, cmd->id, cmd->access_pages.iova,
drivers/iommu/iommufd/selftest.c
2107
ucmd, cmd->id, cmd->access_rw.iova,
drivers/iommu/iommufd/selftest.c
2122
return iommufd_test_dirty(ucmd, cmd->id, cmd->dirty.iova,
drivers/iommu/iommufd/selftest.c
60
u64 *iova)
drivers/iommu/iommufd/selftest.c
66
struct syz_layout *syz = (void *)iova;
drivers/iommu/iommufd/selftest.c
85
u64 *iova)
drivers/iommu/iommufd/selftest.c
94
ret = __iommufd_test_syz_conv_iova(&access->ioas->iopt, iova);
drivers/iommu/iommufd/vfio_compat.c
167
unsigned long iova;
drivers/iommu/iommufd/vfio_compat.c
190
iova = map.iova;
drivers/iommu/iommufd/vfio_compat.c
191
rc = iopt_map_user_pages(ictx, &ioas->iopt, &iova, u64_to_user_ptr(map.vaddr),
drivers/iommu/iommufd/vfio_compat.c
224
if (unmap.iova != 0 || unmap.size != 0) {
drivers/iommu/iommufd/vfio_compat.c
236
unsigned long iovas[] = { unmap.iova + unmap.size - 1,
drivers/iommu/iommufd/vfio_compat.c
237
unmap.iova - 1 };
drivers/iommu/iommufd/vfio_compat.c
240
unmap.iova ? 2 : 1);
drivers/iommu/iommufd/vfio_compat.c
244
rc = iopt_unmap_iova(&ioas->iopt, unmap.iova, unmap.size,
drivers/iommu/iova.c
138
iova_insert_rbtree(struct rb_root *root, struct iova *iova,
drivers/iommu/iova.c
146
struct iova *this = to_iova(*new);
drivers/iommu/iova.c
150
if (iova->pfn_lo < this->pfn_lo)
drivers/iommu/iova.c
152
else if (iova->pfn_lo > this->pfn_lo)
drivers/iommu/iova.c
160
rb_link_node(&iova->node, parent, new);
drivers/iommu/iova.c
161
rb_insert_color(&iova->node, root);
drivers/iommu/iova.c
166
struct iova *new, bool size_aligned)
drivers/iommu/iova.c
169
struct iova *curr_iova;
drivers/iommu/iova.c
229
static struct iova *alloc_iova_mem(void)
drivers/iommu/iova.c
234
static void free_iova_mem(struct iova *iova)
drivers/iommu/iova.c
236
if (iova->pfn_lo != IOVA_ANCHOR)
drivers/iommu/iova.c
237
kmem_cache_free(iova_cache, iova);
drivers/iommu/iova.c
251
struct iova *
drivers/iommu/iova.c
256
struct iova *new_iova;
drivers/iommu/iova.c
275
static struct iova *
drivers/iommu/iova.c
283
struct iova *iova = to_iova(node);
drivers/iommu/iova.c
285
if (pfn < iova->pfn_lo)
drivers/iommu/iova.c
287
else if (pfn > iova->pfn_hi)
drivers/iommu/iova.c
290
return iova; /* pfn falls within iova's range */
drivers/iommu/iova.c
296
static void remove_iova(struct iova_domain *iovad, struct iova *iova)
drivers/iommu/iova.c
299
__cached_rbnode_delete_update(iovad, iova);
drivers/iommu/iova.c
300
rb_erase(&iova->node, &iovad->rbroot);
drivers/iommu/iova.c
310
struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn)
drivers/iommu/iova.c
313
struct iova *iova;
drivers/iommu/iova.c
317
iova = private_find_iova(iovad, pfn);
drivers/iommu/iova.c
319
return iova;
drivers/iommu/iova.c
32
static struct iova *to_iova(struct rb_node *node)
drivers/iommu/iova.c
330
__free_iova(struct iova_domain *iovad, struct iova *iova)
drivers/iommu/iova.c
335
remove_iova(iovad, iova);
drivers/iommu/iova.c
337
free_iova_mem(iova);
drivers/iommu/iova.c
34
return rb_entry(node, struct iova, node);
drivers/iommu/iova.c
352
struct iova *iova;
drivers/iommu/iova.c
355
iova = private_find_iova(iovad, pfn);
drivers/iommu/iova.c
356
if (!iova) {
drivers/iommu/iova.c
360
remove_iova(iovad, iova);
drivers/iommu/iova.c
362
free_iova_mem(iova);
drivers/iommu/iova.c
381
struct iova *new_iova;
drivers/iommu/iova.c
448
struct iova *iova, *tmp;
drivers/iommu/iova.c
453
rbtree_postorder_for_each_entry_safe(iova, tmp, &iovad->rbroot, node)
drivers/iommu/iova.c
454
free_iova_mem(iova);
drivers/iommu/iova.c
462
struct iova *iova = to_iova(node);
drivers/iommu/iova.c
464
if ((pfn_lo <= iova->pfn_hi) && (pfn_hi >= iova->pfn_lo))
drivers/iommu/iova.c
469
static inline struct iova *
drivers/iommu/iova.c
472
struct iova *iova;
drivers/iommu/iova.c
474
iova = alloc_iova_mem();
drivers/iommu/iova.c
475
if (iova) {
drivers/iommu/iova.c
476
iova->pfn_lo = pfn_lo;
drivers/iommu/iova.c
477
iova->pfn_hi = pfn_hi;
drivers/iommu/iova.c
480
return iova;
drivers/iommu/iova.c
483
static struct iova *
drivers/iommu/iova.c
487
struct iova *iova;
drivers/iommu/iova.c
489
iova = alloc_and_init_iova(pfn_lo, pfn_hi);
drivers/iommu/iova.c
490
if (iova)
drivers/iommu/iova.c
491
iova_insert_rbtree(&iovad->rbroot, iova, NULL);
drivers/iommu/iova.c
493
return iova;
drivers/iommu/iova.c
497
__adjust_overlap_range(struct iova *iova,
drivers/iommu/iova.c
500
if (*pfn_lo < iova->pfn_lo)
drivers/iommu/iova.c
501
iova->pfn_lo = *pfn_lo;
drivers/iommu/iova.c
502
if (*pfn_hi > iova->pfn_hi)
drivers/iommu/iova.c
503
*pfn_lo = iova->pfn_hi + 1;
drivers/iommu/iova.c
514
struct iova *
drivers/iommu/iova.c
520
struct iova *iova;
drivers/iommu/iova.c
530
iova = to_iova(node);
drivers/iommu/iova.c
531
__adjust_overlap_range(iova, &pfn_lo, &pfn_hi);
drivers/iommu/iova.c
532
if ((pfn_lo >= iova->pfn_lo) &&
drivers/iommu/iova.c
533
(pfn_hi <= iova->pfn_hi))
drivers/iommu/iova.c
544
iova = __insert_new_range(iovad, pfn_lo, pfn_hi);
drivers/iommu/iova.c
548
return iova;
drivers/iommu/iova.c
627
struct iova *iova = private_find_iova(iovad, mag->pfns[i]);
drivers/iommu/iova.c
629
if (WARN_ON(!iova))
drivers/iommu/iova.c
632
remove_iova(iovad, iova);
drivers/iommu/iova.c
633
free_iova_mem(iova);
drivers/iommu/iova.c
72
__cached_rbnode_insert_update(struct iova_domain *iovad, struct iova *new)
drivers/iommu/iova.c
81
__cached_rbnode_delete_update(struct iova_domain *iovad, struct iova *free)
drivers/iommu/iova.c
83
struct iova *cached_iova;
drivers/iommu/iova.c
959
iova_cache = kmem_cache_create("iommu_iova", sizeof(struct iova), 0,
drivers/iommu/ipmmu-vmsa.c
316
static void ipmmu_tlb_flush(unsigned long iova, size_t size,
drivers/iommu/ipmmu-vmsa.c
491
unsigned long iova;
drivers/iommu/ipmmu-vmsa.c
498
iova = ipmmu_ctx_read_root(domain, IMELAR);
drivers/iommu/ipmmu-vmsa.c
500
iova |= (u64)ipmmu_ctx_read_root(domain, IMEUAR) << 32;
drivers/iommu/ipmmu-vmsa.c
513
iova);
drivers/iommu/ipmmu-vmsa.c
516
iova);
drivers/iommu/ipmmu-vmsa.c
527
if (!report_iommu_fault(&domain->io_domain, mmu->dev, iova, 0))
drivers/iommu/ipmmu-vmsa.c
532
status, iova);
drivers/iommu/ipmmu-vmsa.c
669
static int ipmmu_map(struct iommu_domain *io_domain, unsigned long iova,
drivers/iommu/ipmmu-vmsa.c
675
return domain->iop->map_pages(domain->iop, iova, paddr, pgsize, pgcount,
drivers/iommu/ipmmu-vmsa.c
679
static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
drivers/iommu/ipmmu-vmsa.c
685
return domain->iop->unmap_pages(domain->iop, iova, pgsize, pgcount, gather);
drivers/iommu/ipmmu-vmsa.c
703
dma_addr_t iova)
drivers/iommu/ipmmu-vmsa.c
709
return domain->iop->iova_to_phys(domain->iop, iova);
drivers/iommu/msm_iommu.c
138
static void __flush_iotlb_range(unsigned long iova, size_t size,
drivers/iommu/msm_iommu.c
155
iova &= TLBIVA_VA;
drivers/iommu/msm_iommu.c
156
iova |= GET_CONTEXTIDR_ASID(iommu->base,
drivers/iommu/msm_iommu.c
158
SET_TLBIVA(iommu->base, master->num, iova);
drivers/iommu/msm_iommu.c
159
iova += granule;
drivers/iommu/msm_iommu.c
170
static void __flush_iotlb_walk(unsigned long iova, size_t size,
drivers/iommu/msm_iommu.c
173
__flush_iotlb_range(iova, size, granule, false, cookie);
drivers/iommu/msm_iommu.c
177
unsigned long iova, size_t granule, void *cookie)
drivers/iommu/msm_iommu.c
179
__flush_iotlb_range(iova, granule, granule, true, cookie);
drivers/iommu/msm_iommu.c
486
static int msm_iommu_map(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/msm_iommu.c
495
ret = priv->iop->map_pages(priv->iop, iova, pa, pgsize, pgcount, prot,
drivers/iommu/msm_iommu.c
502
static int msm_iommu_sync_map(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/msm_iommu.c
507
__flush_iotlb_range(iova, size, SZ_4K, false, priv);
drivers/iommu/msm_iommu.c
511
static size_t msm_iommu_unmap(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/msm_iommu.c
520
ret = priv->iop->unmap_pages(priv->iop, iova, pgsize, pgcount, gather);
drivers/iommu/mtk_iommu.c
312
#define MTK_IOMMU_TLB_ADDR(iova) ({ \
drivers/iommu/mtk_iommu.c
313
dma_addr_t _addr = iova; \
drivers/iommu/mtk_iommu.c
404
static void mtk_iommu_tlb_flush_range_sync(unsigned long iova, size_t size,
drivers/iommu/mtk_iommu.c
446
writel_relaxed(MTK_IOMMU_TLB_ADDR(iova), base + REG_MMU_INVLD_START_A);
drivers/iommu/mtk_iommu.c
447
writel_relaxed(MTK_IOMMU_TLB_ADDR(iova + size - 1),
drivers/iommu/mtk_iommu.c
811
static int mtk_iommu_map(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/mtk_iommu.c
822
return dom->iop->map_pages(dom->iop, iova, paddr, pgsize, pgcount, prot, gfp, mapped);
drivers/iommu/mtk_iommu.c
826
unsigned long iova, size_t pgsize, size_t pgcount,
drivers/iommu/mtk_iommu.c
831
iommu_iotlb_gather_add_range(gather, iova, pgsize * pgcount);
drivers/iommu/mtk_iommu.c
832
return dom->iop->unmap_pages(dom->iop, iova, pgsize, pgcount, gather);
drivers/iommu/mtk_iommu.c
852
static int mtk_iommu_sync_map(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/mtk_iommu.c
857
mtk_iommu_tlb_flush_range_sync(iova, size, dom->bank);
drivers/iommu/mtk_iommu.c
862
dma_addr_t iova)
drivers/iommu/mtk_iommu.c
867
pa = dom->iop->iova_to_phys(dom->iop, iova);
drivers/iommu/mtk_iommu_v1.c
180
unsigned long iova, size_t size)
drivers/iommu/mtk_iommu_v1.c
187
writel_relaxed(iova & F_MMU_FAULT_VA_MSK,
drivers/iommu/mtk_iommu_v1.c
189
writel_relaxed((iova + size - 1) & F_MMU_FAULT_VA_MSK,
drivers/iommu/mtk_iommu_v1.c
352
static int mtk_iommu_v1_map(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/mtk_iommu_v1.c
359
u32 *pgt_base_iova = dom->pgt_va + (iova >> MT2701_IOMMU_PAGE_SHIFT);
drivers/iommu/mtk_iommu_v1.c
373
mtk_iommu_v1_tlb_flush_range(dom->data, iova, *mapped);
drivers/iommu/mtk_iommu_v1.c
378
static size_t mtk_iommu_v1_unmap(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/mtk_iommu_v1.c
384
u32 *pgt_base_iova = dom->pgt_va + (iova >> MT2701_IOMMU_PAGE_SHIFT);
drivers/iommu/mtk_iommu_v1.c
391
mtk_iommu_v1_tlb_flush_range(dom->data, iova, size);
drivers/iommu/mtk_iommu_v1.c
396
static phys_addr_t mtk_iommu_v1_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova)
drivers/iommu/mtk_iommu_v1.c
403
pa = *(dom->pgt_va + (iova >> MT2701_IOMMU_PAGE_SHIFT));
drivers/iommu/of_iommu.c
248
phys_addr_t iova;
drivers/iommu/of_iommu.c
254
maps = of_translate_dma_region(np, maps, &iova, &length);
drivers/iommu/of_iommu.c
259
type = iommu_resv_region_get_type(dev, &phys, iova, length);
drivers/iommu/of_iommu.c
261
region = iommu_alloc_resv_region(iova, length, prot, type,
drivers/iommu/riscv/iommu.c
1010
unsigned long iova;
drivers/iommu/riscv/iommu.c
1015
iova = tlbi->start;
drivers/iommu/riscv/iommu.c
1017
riscv_iommu_cmd_inval_set_addr(&cmd, iova);
drivers/iommu/riscv/iommu.c
1021
iova += 1ULL << tlbi->single.stride_lg2;
drivers/iommu/rockchip-iommu.c
324
static u32 rk_iova_dte_index(dma_addr_t iova)
drivers/iommu/rockchip-iommu.c
326
return (u32)(iova & RK_IOVA_DTE_MASK) >> RK_IOVA_DTE_SHIFT;
drivers/iommu/rockchip-iommu.c
329
static u32 rk_iova_pte_index(dma_addr_t iova)
drivers/iommu/rockchip-iommu.c
331
return (u32)(iova & RK_IOVA_PTE_MASK) >> RK_IOVA_PTE_SHIFT;
drivers/iommu/rockchip-iommu.c
334
static u32 rk_iova_page_offset(dma_addr_t iova)
drivers/iommu/rockchip-iommu.c
336
return (u32)(iova & RK_IOVA_PAGE_MASK) >> RK_IOVA_PAGE_SHIFT;
drivers/iommu/rockchip-iommu.c
371
dma_addr_t iova;
drivers/iommu/rockchip-iommu.c
373
for (iova = iova_start; iova < iova_end; iova += SPAGE_SIZE)
drivers/iommu/rockchip-iommu.c
374
rk_iommu_write(iommu->bases[i], RK_MMU_ZAP_ONE_LINE, iova);
drivers/iommu/rockchip-iommu.c
537
static void log_iova(struct rk_iommu *iommu, int index, dma_addr_t iova)
drivers/iommu/rockchip-iommu.c
551
dte_index = rk_iova_dte_index(iova);
drivers/iommu/rockchip-iommu.c
552
pte_index = rk_iova_pte_index(iova);
drivers/iommu/rockchip-iommu.c
553
page_offset = rk_iova_page_offset(iova);
drivers/iommu/rockchip-iommu.c
577
&iova, dte_index, pte_index, page_offset);
drivers/iommu/rockchip-iommu.c
589
dma_addr_t iova;
drivers/iommu/rockchip-iommu.c
606
iova = rk_iommu_read(iommu->bases[i], RK_MMU_PAGE_FAULT_ADDR);
drivers/iommu/rockchip-iommu.c
616
&iova,
drivers/iommu/rockchip-iommu.c
619
log_iova(iommu, i, iova);
drivers/iommu/rockchip-iommu.c
627
report_iommu_fault(iommu->domain, iommu->dev, iova,
drivers/iommu/rockchip-iommu.c
637
dev_err(iommu->dev, "BUS_ERROR occurred at %pad\n", &iova);
drivers/iommu/rockchip-iommu.c
654
dma_addr_t iova)
drivers/iommu/rockchip-iommu.c
664
dte = rk_domain->dt[rk_iova_dte_index(iova)];
drivers/iommu/rockchip-iommu.c
670
pte = page_table[rk_iova_pte_index(iova)];
drivers/iommu/rockchip-iommu.c
674
phys = rk_ops->pt_address(pte) + rk_iova_page_offset(iova);
drivers/iommu/rockchip-iommu.c
682
dma_addr_t iova, size_t size)
drivers/iommu/rockchip-iommu.c
702
rk_iommu_zap_lines(iommu, iova, size);
drivers/iommu/rockchip-iommu.c
711
dma_addr_t iova, size_t size)
drivers/iommu/rockchip-iommu.c
713
rk_iommu_zap_iova(rk_domain, iova, SPAGE_SIZE);
drivers/iommu/rockchip-iommu.c
715
rk_iommu_zap_iova(rk_domain, iova + size - SPAGE_SIZE,
drivers/iommu/rockchip-iommu.c
720
dma_addr_t iova)
drivers/iommu/rockchip-iommu.c
729
dte_index = rk_iova_dte_index(iova);
drivers/iommu/rockchip-iommu.c
780
dma_addr_t pte_dma, dma_addr_t iova,
drivers/iommu/rockchip-iommu.c
808
rk_iommu_zap_iova_first_last(rk_domain, iova, size);
drivers/iommu/rockchip-iommu.c
816
iova += pte_count * SPAGE_SIZE;
drivers/iommu/rockchip-iommu.c
819
&iova, &page_phys, &paddr, prot);
drivers/iommu/rockchip-iommu.c
830
dma_addr_t pte_dma, iova = (dma_addr_t)_iova;
drivers/iommu/rockchip-iommu.c
844
page_table = rk_dte_get_page_table(rk_domain, iova);
drivers/iommu/rockchip-iommu.c
850
dte_index = rk_domain->dt[rk_iova_dte_index(iova)];
drivers/iommu/rockchip-iommu.c
851
pte_index = rk_iova_pte_index(iova);
drivers/iommu/rockchip-iommu.c
855
ret = rk_iommu_map_iova(rk_domain, pte_addr, pte_dma, iova,
drivers/iommu/rockchip-iommu.c
870
dma_addr_t pte_dma, iova = (dma_addr_t)_iova;
drivers/iommu/rockchip-iommu.c
885
dte = rk_domain->dt[rk_iova_dte_index(iova)];
drivers/iommu/rockchip-iommu.c
893
pte_addr = (u32 *)phys_to_virt(pt_phys) + rk_iova_pte_index(iova);
drivers/iommu/rockchip-iommu.c
894
pte_dma = pt_phys + rk_iova_pte_index(iova) * sizeof(u32);
drivers/iommu/rockchip-iommu.c
900
rk_iommu_zap_iova(rk_domain, iova, unmap_size);
drivers/iommu/s390-iommu.c
1002
rto = get_rto_from_iova(s390_domain, iova);
drivers/iommu/s390-iommu.c
1006
rtx = calc_rtx(iova);
drivers/iommu/s390-iommu.c
1007
sx = calc_sx(iova);
drivers/iommu/s390-iommu.c
1008
px = calc_px(iova);
drivers/iommu/s390-iommu.c
1026
unsigned long iova,
drivers/iommu/s390-iommu.c
1034
if (WARN_ON(iova < s390_domain->domain.geometry.aperture_start ||
drivers/iommu/s390-iommu.c
1035
(iova + size - 1) > s390_domain->domain.geometry.aperture_end))
drivers/iommu/s390-iommu.c
1038
rc = s390_iommu_invalidate_trans(s390_domain, iova, pgcount);
drivers/iommu/s390-iommu.c
1042
iommu_iotlb_gather_add_range(gather, iova, size);
drivers/iommu/s390-iommu.c
829
unsigned long iova, size_t size)
drivers/iommu/s390-iommu.c
841
iova, size);
drivers/iommu/s390-iommu.c
913
unsigned long iova, phys_addr_t paddr,
drivers/iommu/s390-iommu.c
924
if (iova < s390_domain->domain.geometry.aperture_start ||
drivers/iommu/s390-iommu.c
925
(iova + size - 1) > s390_domain->domain.geometry.aperture_end)
drivers/iommu/s390-iommu.c
928
if (!IS_ALIGNED(iova | paddr, pgsize))
drivers/iommu/s390-iommu.c
934
rc = s390_iommu_validate_trans(s390_domain, paddr, iova,
drivers/iommu/s390-iommu.c
945
dma_addr_t iova)
drivers/iommu/s390-iommu.c
954
rfx = calc_rfx(iova);
drivers/iommu/s390-iommu.c
967
dma_addr_t iova)
drivers/iommu/s390-iommu.c
976
rso = get_rso_from_iova(domain, iova);
drivers/iommu/s390-iommu.c
977
rsx = calc_rsx(iova);
drivers/iommu/s390-iommu.c
990
dma_addr_t iova)
drivers/iommu/s390-iommu.c
998
if (iova < domain->geometry.aperture_start ||
drivers/iommu/s390-iommu.c
999
iova > domain->geometry.aperture_end)
drivers/iommu/sprd-iommu.c
287
static int sprd_iommu_map(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/sprd-iommu.c
305
if (iova < start || (iova + size) > (end + 1)) {
drivers/iommu/sprd-iommu.c
307
iova, size);
drivers/iommu/sprd-iommu.c
311
pgt_base_iova = dom->pgt_va + ((iova - start) >> SPRD_IOMMU_PAGE_SHIFT);
drivers/iommu/sprd-iommu.c
324
static size_t sprd_iommu_unmap(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/sprd-iommu.c
335
if (iova < start || (iova + size) > (end + 1))
drivers/iommu/sprd-iommu.c
338
pgt_base_iova = dom->pgt_va + ((iova - start) >> SPRD_IOMMU_PAGE_SHIFT);
drivers/iommu/sprd-iommu.c
348
unsigned long iova, size_t size)
drivers/iommu/sprd-iommu.c
370
dma_addr_t iova)
drivers/iommu/sprd-iommu.c
378
if (WARN_ON(iova < start || iova > end))
drivers/iommu/sprd-iommu.c
382
pa = *(dom->pgt_va + ((iova - start) >> SPRD_IOMMU_PAGE_SHIFT));
drivers/iommu/sprd-iommu.c
383
pa = (pa << SPRD_IOMMU_PAGE_SHIFT) + ((iova - start) & (SPRD_IOMMU_PAGE_SIZE - 1));
drivers/iommu/sun50i-iommu.c
166
static u32 sun50i_iova_get_dte_index(dma_addr_t iova)
drivers/iommu/sun50i-iommu.c
168
return FIELD_GET(SUN50I_IOVA_DTE_MASK, iova);
drivers/iommu/sun50i-iommu.c
171
static u32 sun50i_iova_get_pte_index(dma_addr_t iova)
drivers/iommu/sun50i-iommu.c
173
return FIELD_GET(SUN50I_IOVA_PTE_MASK, iova);
drivers/iommu/sun50i-iommu.c
176
static u32 sun50i_iova_get_page_offset(dma_addr_t iova)
drivers/iommu/sun50i-iommu.c
178
return FIELD_GET(SUN50I_IOVA_PAGE_MASK, iova);
drivers/iommu/sun50i-iommu.c
302
unsigned long iova)
drivers/iommu/sun50i-iommu.c
307
iommu_write(iommu, IOMMU_TLB_IVLD_ADDR_REG, iova);
drivers/iommu/sun50i-iommu.c
319
unsigned long iova)
drivers/iommu/sun50i-iommu.c
324
iommu_write(iommu, IOMMU_PC_IVLD_ADDR_REG, iova);
drivers/iommu/sun50i-iommu.c
335
unsigned long iova, size_t size)
drivers/iommu/sun50i-iommu.c
341
sun50i_iommu_zap_iova(iommu, iova);
drivers/iommu/sun50i-iommu.c
342
sun50i_iommu_zap_iova(iommu, iova + SPAGE_SIZE);
drivers/iommu/sun50i-iommu.c
344
sun50i_iommu_zap_iova(iommu, iova + size);
drivers/iommu/sun50i-iommu.c
345
sun50i_iommu_zap_iova(iommu, iova + size + SPAGE_SIZE);
drivers/iommu/sun50i-iommu.c
347
sun50i_iommu_zap_ptw_cache(iommu, iova);
drivers/iommu/sun50i-iommu.c
348
sun50i_iommu_zap_ptw_cache(iommu, iova + SZ_1M);
drivers/iommu/sun50i-iommu.c
350
sun50i_iommu_zap_ptw_cache(iommu, iova + size);
drivers/iommu/sun50i-iommu.c
351
sun50i_iommu_zap_ptw_cache(iommu, iova + size + SZ_1M);
drivers/iommu/sun50i-iommu.c
407
unsigned long iova, size_t size)
drivers/iommu/sun50i-iommu.c
414
sun50i_iommu_zap_range(iommu, iova, size);
drivers/iommu/sun50i-iommu.c
557
dma_addr_t iova, gfp_t gfp)
drivers/iommu/sun50i-iommu.c
565
dte_addr = &sun50i_domain->dt[sun50i_iova_get_dte_index(iova)];
drivers/iommu/sun50i-iommu.c
595
static int sun50i_iommu_map(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/sun50i-iommu.c
613
page_table = sun50i_dte_get_page_table(sun50i_domain, iova, gfp);
drivers/iommu/sun50i-iommu.c
619
pte_index = sun50i_iova_get_pte_index(iova);
drivers/iommu/sun50i-iommu.c
625
&iova, &page_phys, &paddr, prot);
drivers/iommu/sun50i-iommu.c
638
static size_t sun50i_iommu_unmap(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/sun50i-iommu.c
646
dte = sun50i_domain->dt[sun50i_iova_get_dte_index(iova)];
drivers/iommu/sun50i-iommu.c
651
pte_addr = (u32 *)phys_to_virt(pt_phys) + sun50i_iova_get_pte_index(iova);
drivers/iommu/sun50i-iommu.c
663
dma_addr_t iova)
drivers/iommu/sun50i-iommu.c
670
dte = sun50i_domain->dt[sun50i_iova_get_dte_index(iova)];
drivers/iommu/sun50i-iommu.c
676
pte = page_table[sun50i_iova_get_pte_index(iova)];
drivers/iommu/sun50i-iommu.c
681
sun50i_iova_get_page_offset(iova);
drivers/iommu/sun50i-iommu.c
868
unsigned master, phys_addr_t iova,
drivers/iommu/sun50i-iommu.c
872
&iova, master, (prot == IOMMU_FAULT_WRITE) ? "wr" : "rd");
drivers/iommu/sun50i-iommu.c
875
report_iommu_fault(iommu->domain, iommu->dev, iova, prot);
drivers/iommu/sun50i-iommu.c
879
sun50i_iommu_zap_range(iommu, iova, SPAGE_SIZE);
drivers/iommu/sun50i-iommu.c
886
phys_addr_t iova;
drivers/iommu/sun50i-iommu.c
892
iova = iommu_read(iommu, addr_reg);
drivers/iommu/sun50i-iommu.c
901
sun50i_iommu_report_fault(iommu, master, iova, IOMMU_FAULT_READ);
drivers/iommu/sun50i-iommu.c
903
return iova;
drivers/iommu/sun50i-iommu.c
909
phys_addr_t iova;
drivers/iommu/sun50i-iommu.c
918
iova = iommu_read(iommu, IOMMU_INT_ERR_ADDR_REG(master));
drivers/iommu/sun50i-iommu.c
956
sun50i_iommu_report_fault(iommu, master, iova, dir);
drivers/iommu/sun50i-iommu.c
958
return iova;
drivers/iommu/tegra-smmu.c
169
static unsigned int iova_pd_index(unsigned long iova)
drivers/iommu/tegra-smmu.c
171
return (iova >> SMMU_PDE_SHIFT) & (SMMU_NUM_PDE - 1);
drivers/iommu/tegra-smmu.c
174
static unsigned int iova_pt_index(unsigned long iova)
drivers/iommu/tegra-smmu.c
176
return (iova >> SMMU_PTE_SHIFT) & (SMMU_NUM_PTE - 1);
drivers/iommu/tegra-smmu.c
236
unsigned long iova)
drivers/iommu/tegra-smmu.c
245
value |= SMMU_TLB_FLUSH_ASID_MATCH | SMMU_TLB_FLUSH_VA_SECTION(iova);
drivers/iommu/tegra-smmu.c
251
unsigned long iova)
drivers/iommu/tegra-smmu.c
260
value |= SMMU_TLB_FLUSH_ASID_MATCH | SMMU_TLB_FLUSH_VA_GROUP(iova);
drivers/iommu/tegra-smmu.c
559
static void tegra_smmu_set_pde(struct tegra_smmu_as *as, unsigned long iova,
drivers/iommu/tegra-smmu.c
562
unsigned int pd_index = iova_pd_index(iova);
drivers/iommu/tegra-smmu.c
576
smmu_flush_tlb_section(smmu, as->id, iova);
drivers/iommu/tegra-smmu.c
580
static u32 *tegra_smmu_pte_offset(struct tegra_pt *pt, unsigned long iova)
drivers/iommu/tegra-smmu.c
582
return &pt->val[iova_pt_index(iova)];
drivers/iommu/tegra-smmu.c
585
static u32 *tegra_smmu_pte_lookup(struct tegra_smmu_as *as, unsigned long iova,
drivers/iommu/tegra-smmu.c
588
unsigned int pd_index = iova_pd_index(iova);
drivers/iommu/tegra-smmu.c
598
return tegra_smmu_pte_offset(pt, iova);
drivers/iommu/tegra-smmu.c
601
static u32 *as_get_pte(struct tegra_smmu_as *as, dma_addr_t iova,
drivers/iommu/tegra-smmu.c
604
unsigned int pde = iova_pd_index(iova);
drivers/iommu/tegra-smmu.c
626
tegra_smmu_set_pde(as, iova, SMMU_MK_PDE(dma, SMMU_PDE_ATTR |
drivers/iommu/tegra-smmu.c
634
return tegra_smmu_pte_offset(as->pts[pde], iova);
drivers/iommu/tegra-smmu.c
637
static void tegra_smmu_pte_get_use(struct tegra_smmu_as *as, unsigned long iova)
drivers/iommu/tegra-smmu.c
639
unsigned int pd_index = iova_pd_index(iova);
drivers/iommu/tegra-smmu.c
644
static void tegra_smmu_pte_put_use(struct tegra_smmu_as *as, unsigned long iova)
drivers/iommu/tegra-smmu.c
646
unsigned int pde = iova_pd_index(iova);
drivers/iommu/tegra-smmu.c
657
tegra_smmu_set_pde(as, iova, 0);
drivers/iommu/tegra-smmu.c
666
static void tegra_smmu_set_pte(struct tegra_smmu_as *as, unsigned long iova,
drivers/iommu/tegra-smmu.c
677
smmu_flush_tlb_group(smmu, as->id, iova);
drivers/iommu/tegra-smmu.c
682
unsigned long iova, gfp_t gfp,
drivers/iommu/tegra-smmu.c
685
unsigned int pde = iova_pd_index(iova);
drivers/iommu/tegra-smmu.c
721
__tegra_smmu_map(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/tegra-smmu.c
731
pt = as_get_pde_page(as, iova, gfp, flags);
drivers/iommu/tegra-smmu.c
735
pte = as_get_pte(as, iova, &pte_dma, pt);
drivers/iommu/tegra-smmu.c
741
tegra_smmu_pte_get_use(as, iova);
drivers/iommu/tegra-smmu.c
751
tegra_smmu_set_pte(as, iova, pte, pte_dma,
drivers/iommu/tegra-smmu.c
758
__tegra_smmu_unmap(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/tegra-smmu.c
765
pte = tegra_smmu_pte_lookup(as, iova, &pte_dma);
drivers/iommu/tegra-smmu.c
769
tegra_smmu_set_pte(as, iova, pte, pte_dma, 0);
drivers/iommu/tegra-smmu.c
770
tegra_smmu_pte_put_use(as, iova);
drivers/iommu/tegra-smmu.c
775
static int tegra_smmu_map(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/tegra-smmu.c
784
ret = __tegra_smmu_map(domain, iova, paddr, size, prot, gfp, &flags);
drivers/iommu/tegra-smmu.c
793
static size_t tegra_smmu_unmap(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/tegra-smmu.c
800
size = __tegra_smmu_unmap(domain, iova, size, gather);
drivers/iommu/tegra-smmu.c
807
dma_addr_t iova)
drivers/iommu/tegra-smmu.c
814
pte = tegra_smmu_pte_lookup(as, iova, &pte_dma);
drivers/iommu/tegra-smmu.c
820
return SMMU_PFN_PHYS(pfn) + SMMU_OFFSET_IN_PAGE(iova);
drivers/iommu/virtio-iommu.c
330
static int viommu_add_mapping(struct viommu_domain *vdomain, u64 iova, u64 end,
drivers/iommu/virtio-iommu.c
341
mapping->iova.start = iova;
drivers/iommu/virtio-iommu.c
342
mapping->iova.last = end;
drivers/iommu/virtio-iommu.c
346
interval_tree_insert(&mapping->iova, &vdomain->mappings);
drivers/iommu/virtio-iommu.c
362
u64 iova, u64 end)
drivers/iommu/virtio-iommu.c
370
next = interval_tree_iter_first(&vdomain->mappings, iova, end);
drivers/iommu/virtio-iommu.c
373
mapping = container_of(node, struct viommu_mapping, iova);
drivers/iommu/virtio-iommu.c
374
next = interval_tree_iter_next(node, iova, end);
drivers/iommu/virtio-iommu.c
377
if (mapping->iova.start < iova)
drivers/iommu/virtio-iommu.c
384
unmapped += mapping->iova.last - mapping->iova.start + 1;
drivers/iommu/virtio-iommu.c
403
u64 iova = vdomain->domain.geometry.aperture_start;
drivers/iommu/virtio-iommu.c
408
iova = ALIGN(iova, granule);
drivers/iommu/virtio-iommu.c
415
if (resv_end < iova || resv_start > limit)
drivers/iommu/virtio-iommu.c
419
if (resv_start > iova) {
drivers/iommu/virtio-iommu.c
420
ret = viommu_add_mapping(vdomain, iova, resv_start - 1,
drivers/iommu/virtio-iommu.c
421
(phys_addr_t)iova, flags);
drivers/iommu/virtio-iommu.c
429
iova = resv_end + 1;
drivers/iommu/virtio-iommu.c
432
ret = viommu_add_mapping(vdomain, iova, limit, (phys_addr_t)iova,
drivers/iommu/virtio-iommu.c
439
viommu_del_mappings(vdomain, 0, iova);
drivers/iommu/virtio-iommu.c
461
mapping = container_of(node, struct viommu_mapping, iova);
drivers/iommu/virtio-iommu.c
465
.virt_start = cpu_to_le64(mapping->iova.start),
drivers/iommu/virtio-iommu.c
466
.virt_end = cpu_to_le64(mapping->iova.last),
drivers/iommu/virtio-iommu.c
59
struct interval_tree_node iova;
drivers/iommu/virtio-iommu.c
842
static int viommu_map_pages(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/virtio-iommu.c
849
u64 end = iova + size - 1;
drivers/iommu/virtio-iommu.c
860
ret = viommu_add_mapping(vdomain, iova, end, paddr, flags);
drivers/iommu/virtio-iommu.c
868
.virt_start = cpu_to_le64(iova),
drivers/iommu/virtio-iommu.c
876
viommu_del_mappings(vdomain, iova, end);
drivers/iommu/virtio-iommu.c
886
static size_t viommu_unmap_pages(struct iommu_domain *domain, unsigned long iova,
drivers/iommu/virtio-iommu.c
896
unmapped = viommu_del_mappings(vdomain, iova, iova + size - 1);
drivers/iommu/virtio-iommu.c
907
.virt_start = cpu_to_le64(iova),
drivers/iommu/virtio-iommu.c
908
.virt_end = cpu_to_le64(iova + unmapped - 1),
drivers/iommu/virtio-iommu.c
916
dma_addr_t iova)
drivers/iommu/virtio-iommu.c
925
node = interval_tree_iter_first(&vdomain->mappings, iova, iova);
drivers/iommu/virtio-iommu.c
927
mapping = container_of(node, struct viommu_mapping, iova);
drivers/iommu/virtio-iommu.c
928
paddr = mapping->paddr + (iova - mapping->iova.start);
drivers/iommu/virtio-iommu.c
944
unsigned long iova, size_t size)
drivers/iommu/vsi-iommu.c
177
static u32 vsi_iova_dte_index(u32 iova)
drivers/iommu/vsi-iommu.c
179
return (iova & VSI_IOVA_DTE_MASK) >> VSI_IOVA_DTE_SHIFT;
drivers/iommu/vsi-iommu.c
182
static u32 vsi_iova_pte_index(u32 iova)
drivers/iommu/vsi-iommu.c
184
return (iova & VSI_IOVA_PTE_MASK) >> VSI_IOVA_PTE_SHIFT;
drivers/iommu/vsi-iommu.c
187
static u32 vsi_iova_page_offset(u32 iova)
drivers/iommu/vsi-iommu.c
189
return (iova & VSI_IOVA_PAGE_MASK) >> VSI_IOVA_PAGE_SHIFT;
drivers/iommu/vsi-iommu.c
196
dma_addr_t iova;
drivers/iommu/vsi-iommu.c
207
iova = readl(iommu->regs + VSI_MMU_PAGE_FAULT_ADDR);
drivers/iommu/vsi-iommu.c
208
report_iommu_fault(iommu->domain, iommu->dev, iova, status);
drivers/iommu/vsi-iommu.c
294
dma_addr_t iova)
drivers/iommu/vsi-iommu.c
303
dte = vsi_domain->dt[vsi_iova_dte_index(iova)];
drivers/iommu/vsi-iommu.c
309
pte = page_table[vsi_iova_pte_index(iova)];
drivers/iommu/vsi-iommu.c
313
phys = vsi_pte_page_address(pte) + vsi_iova_page_offset(iova);
drivers/iommu/vsi-iommu.c
343
dma_addr_t pte_dma, dma_addr_t iova,
drivers/iommu/vsi-iommu.c
392
dma_addr_t pte_dma, iova = (dma_addr_t)_iova;
drivers/iommu/vsi-iommu.c
401
dte = vsi_domain->dt[vsi_iova_dte_index(iova)];
drivers/iommu/vsi-iommu.c
407
pte_addr = (u32 *)phys_to_virt(pt_phys) + vsi_iova_pte_index(iova);
drivers/iommu/vsi-iommu.c
408
pte_dma = pt_phys + vsi_iova_pte_index(iova) * sizeof(u32);
drivers/iommu/vsi-iommu.c
421
dma_addr_t iova, gfp_t gfp)
drivers/iommu/vsi-iommu.c
429
dte_index = vsi_iova_dte_index(iova);
drivers/iommu/vsi-iommu.c
463
dma_addr_t pte_dma, iova = (dma_addr_t)_iova;
drivers/iommu/vsi-iommu.c
471
page_table = vsi_dte_get_page_table(vsi_domain, iova, gfp);
drivers/iommu/vsi-iommu.c
477
dte = vsi_domain->dt[vsi_iova_dte_index(iova)];
drivers/iommu/vsi-iommu.c
478
pte_index = vsi_iova_pte_index(iova);
drivers/iommu/vsi-iommu.c
481
ret = vsi_iommu_map_iova(vsi_domain, pte_addr, pte_dma, iova,
drivers/media/pci/intel/ipu6/ipu6-dma.c
163
struct iova *iova;
drivers/media/pci/intel/ipu6/ipu6-dma.c
174
iova = alloc_iova(&mmu->dmap->iovad, count,
drivers/media/pci/intel/ipu6/ipu6-dma.c
176
if (!iova)
drivers/media/pci/intel/ipu6/ipu6-dma.c
184
size, iova->pfn_lo, iova->pfn_hi);
drivers/media/pci/intel/ipu6/ipu6-dma.c
185
for (i = 0; iova->pfn_lo + i <= iova->pfn_hi; i++) {
drivers/media/pci/intel/ipu6/ipu6-dma.c
197
PFN_PHYS(iova->pfn_lo + i), pci_dma_addr,
drivers/media/pci/intel/ipu6/ipu6-dma.c
213
*dma_handle = PFN_PHYS(iova->pfn_lo);
drivers/media/pci/intel/ipu6/ipu6-dma.c
224
ipu6_iova = PFN_PHYS(iova->pfn_lo + i);
drivers/media/pci/intel/ipu6/ipu6-dma.c
236
__free_iova(&mmu->dmap->iovad, iova);
drivers/media/pci/intel/ipu6/ipu6-dma.c
249
struct iova *iova = find_iova(&mmu->dmap->iovad, PHYS_PFN(dma_handle));
drivers/media/pci/intel/ipu6/ipu6-dma.c
255
if (WARN_ON(!iova))
drivers/media/pci/intel/ipu6/ipu6-dma.c
277
ipu6_iova = PFN_PHYS(iova->pfn_lo + i);
drivers/media/pci/intel/ipu6/ipu6-dma.c
284
ipu6_mmu_unmap(mmu->dmap->mmu_info, PFN_PHYS(iova->pfn_lo),
drivers/media/pci/intel/ipu6/ipu6-dma.c
285
PFN_PHYS(iova_size(iova)));
drivers/media/pci/intel/ipu6/ipu6-dma.c
29
static struct vm_info *get_vm_info(struct ipu6_mmu *mmu, dma_addr_t iova)
drivers/media/pci/intel/ipu6/ipu6-dma.c
291
__free_iova(&mmu->dmap->iovad, iova);
drivers/media/pci/intel/ipu6/ipu6-dma.c
298
void *addr, dma_addr_t iova, size_t size,
drivers/media/pci/intel/ipu6/ipu6-dma.c
307
info = get_vm_info(mmu, iova);
drivers/media/pci/intel/ipu6/ipu6-dma.c
336
struct iova *iova = find_iova(&mmu->dmap->iovad,
drivers/media/pci/intel/ipu6/ipu6-dma.c
34
if (iova >= info->ipu6_iova &&
drivers/media/pci/intel/ipu6/ipu6-dma.c
345
if (WARN_ON(!iova))
drivers/media/pci/intel/ipu6/ipu6-dma.c
35
iova < (info->ipu6_iova + info->size))
drivers/media/pci/intel/ipu6/ipu6-dma.c
365
iova->pfn_lo, iova->pfn_hi);
drivers/media/pci/intel/ipu6/ipu6-dma.c
366
ipu6_mmu_unmap(mmu->dmap->mmu_info, PFN_PHYS(iova->pfn_lo),
drivers/media/pci/intel/ipu6/ipu6-dma.c
367
PFN_PHYS(iova_size(iova)));
drivers/media/pci/intel/ipu6/ipu6-dma.c
370
__free_iova(&mmu->dmap->iovad, iova);
drivers/media/pci/intel/ipu6/ipu6-dma.c
381
struct iova *iova;
drivers/media/pci/intel/ipu6/ipu6-dma.c
400
iova = alloc_iova(&mmu->dmap->iovad, npages,
drivers/media/pci/intel/ipu6/ipu6-dma.c
402
if (!iova)
drivers/media/pci/intel/ipu6/ipu6-dma.c
405
dev_dbg(dev, "dmamap: iova low pfn %lu, high pfn %lu\n", iova->pfn_lo,
drivers/media/pci/intel/ipu6/ipu6-dma.c
406
iova->pfn_hi);
drivers/media/pci/intel/ipu6/ipu6-dma.c
408
iova_addr = iova->pfn_lo;
drivers/media/pci/intel/ipu6/ipu6-dma.h
31
void *addr, dma_addr_t iova, size_t size,
drivers/media/pci/intel/ipu6/ipu6-mmu.c
108
l1_idx, iova, iova + ISP_PAGE_SIZE, &l2_phys);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
112
u32 iova2 = iova + (l2_idx << ISP_L2PT_SHIFT);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
257
static void l2_unmap(struct ipu6_mmu_info *mmu_info, unsigned long iova,
drivers/media/pci/intel/ipu6/ipu6-mmu.c
267
for (l1_idx = iova >> ISP_L1PT_SHIFT;
drivers/media/pci/intel/ipu6/ipu6-mmu.c
271
l1_idx, iova);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
276
iova, l1_idx);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
282
for (l2_idx = (iova & ISP_L2PT_MASK) >> ISP_L2PT_SHIFT;
drivers/media/pci/intel/ipu6/ipu6-mmu.c
291
iova += ISP_PAGE_SIZE;
drivers/media/pci/intel/ipu6/ipu6-mmu.c
306
static int l2_map(struct ipu6_mmu_info *mmu_info, unsigned long iova,
drivers/media/pci/intel/ipu6/ipu6-mmu.c
323
for (l1_idx = iova >> ISP_L1PT_SHIFT;
drivers/media/pci/intel/ipu6/ipu6-mmu.c
327
l1_idx, (u32)iova);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
362
for (l2_idx = (iova & ISP_L2PT_MASK) >> ISP_L2PT_SHIFT;
drivers/media/pci/intel/ipu6/ipu6-mmu.c
369
iova += ISP_PAGE_SIZE;
drivers/media/pci/intel/ipu6/ipu6-mmu.c
390
l2_unmap(mmu_info, iova - mapped, paddr - mapped, mapped);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
395
static int __ipu6_mmu_map(struct ipu6_mmu_info *mmu_info, unsigned long iova,
drivers/media/pci/intel/ipu6/ipu6-mmu.c
398
u32 iova_start = round_down(iova, ISP_PAGE_SIZE);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
399
u32 iova_end = ALIGN(iova + size, ISP_PAGE_SIZE);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
409
unsigned long iova, size_t size)
drivers/media/pci/intel/ipu6/ipu6-mmu.c
411
l2_unmap(mmu_info, iova, 0, size);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
417
struct iova *iova;
drivers/media/pci/intel/ipu6/ipu6-mmu.c
424
iova = alloc_iova(&mmu->dmap->iovad, n_pages,
drivers/media/pci/intel/ipu6/ipu6-mmu.c
426
if (!iova) {
drivers/media/pci/intel/ipu6/ipu6-mmu.c
445
iova_addr = iova->pfn_lo;
drivers/media/pci/intel/ipu6/ipu6-mmu.c
458
mmu->iova_trash_page = PFN_PHYS(iova->pfn_lo);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
464
ipu6_mmu_unmap(mmu->dmap->mmu_info, PFN_PHYS(iova->pfn_lo),
drivers/media/pci/intel/ipu6/ipu6-mmu.c
465
PFN_PHYS(iova_size(iova)));
drivers/media/pci/intel/ipu6/ipu6-mmu.c
469
__free_iova(&mmu->dmap->iovad, iova);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
637
dma_addr_t iova)
drivers/media/pci/intel/ipu6/ipu6-mmu.c
644
l2_pt = mmu_info->l2_pts[iova >> ISP_L1PT_SHIFT];
drivers/media/pci/intel/ipu6/ipu6-mmu.c
645
phy_addr = (phys_addr_t)l2_pt[(iova & ISP_L2PT_MASK) >> ISP_L2PT_SHIFT];
drivers/media/pci/intel/ipu6/ipu6-mmu.c
652
void ipu6_mmu_unmap(struct ipu6_mmu_info *mmu_info, unsigned long iova,
drivers/media/pci/intel/ipu6/ipu6-mmu.c
657
dev_dbg(mmu_info->dev, "unmapping iova 0x%lx size 0x%zx\n", iova, size);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
667
if (!IS_ALIGNED(iova | size, min_pagesz)) {
drivers/media/pci/intel/ipu6/ipu6-mmu.c
669
iova, size, min_pagesz);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
673
__ipu6_mmu_unmap(mmu_info, iova, size);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
676
int ipu6_mmu_map(struct ipu6_mmu_info *mmu_info, unsigned long iova,
drivers/media/pci/intel/ipu6/ipu6-mmu.c
692
if (!IS_ALIGNED(iova | paddr | size, min_pagesz)) {
drivers/media/pci/intel/ipu6/ipu6-mmu.c
695
iova, &paddr, size, min_pagesz);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
700
iova, &paddr, size);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
702
return __ipu6_mmu_map(mmu_info, iova, paddr, size);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
709
struct iova *iova;
drivers/media/pci/intel/ipu6/ipu6-mmu.c
713
iova = find_iova(&dmap->iovad, PHYS_PFN(mmu->iova_trash_page));
drivers/media/pci/intel/ipu6/ipu6-mmu.c
714
if (iova) {
drivers/media/pci/intel/ipu6/ipu6-mmu.c
716
ipu6_mmu_unmap(mmu_info, PFN_PHYS(iova->pfn_lo),
drivers/media/pci/intel/ipu6/ipu6-mmu.c
717
PFN_PHYS(iova_size(iova)));
drivers/media/pci/intel/ipu6/ipu6-mmu.c
718
__free_iova(&dmap->iovad, iova);
drivers/media/pci/intel/ipu6/ipu6-mmu.c
99
u32 iova = (phys_addr_t)l1_idx << ISP_L1PT_SHIFT;
drivers/media/pci/intel/ipu6/ipu6-mmu.h
67
int ipu6_mmu_map(struct ipu6_mmu_info *mmu_info, unsigned long iova,
drivers/media/pci/intel/ipu6/ipu6-mmu.h
69
void ipu6_mmu_unmap(struct ipu6_mmu_info *mmu_info, unsigned long iova,
drivers/media/pci/intel/ipu6/ipu6-mmu.h
72
dma_addr_t iova);
drivers/media/platform/mediatek/mdp3/mdp_sm_mt8183.h
105
u32 iova[IMG_MAX_PLANES];
drivers/media/platform/mediatek/mdp3/mdp_sm_mt8183.h
53
u32 iova[IMG_MAX_PLANES];
drivers/media/platform/mediatek/mdp3/mdp_sm_mt8183.h
87
u32 iova[IMG_MAX_PLANES];
drivers/media/platform/mediatek/mdp3/mdp_sm_mt8195.h
210
u32 iova[IMG_MAX_PLANES];
drivers/media/platform/mediatek/mdp3/mdp_sm_mt8195.h
236
u32 iova[IMG_MAX_PLANES];
drivers/media/platform/mediatek/mdp3/mdp_sm_mt8195.h
56
u32 iova[IMG_MAX_PLANES];
drivers/media/platform/mediatek/mdp3/mtk-img-ipi.h
31
u32 iova; /* Used for IOMMU HW access */
drivers/media/platform/mediatek/mdp3/mtk-img-ipi.h
37
u32 iova; /* Used for IOMMU HW access */
drivers/media/platform/mediatek/mdp3/mtk-img-ipi.h
60
u32 iova[IMG_MAX_PLANES];
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
161
reg = CFG_COMP(MT8183, ctx->param, rdma.iova[0]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
163
reg = CFG_COMP(MT8195, ctx->param, rdma.iova[0]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
167
reg = CFG_COMP(MT8183, ctx->param, rdma.iova[1]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
169
reg = CFG_COMP(MT8195, ctx->param, rdma.iova[1]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
173
reg = CFG_COMP(MT8183, ctx->param, rdma.iova[2]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
175
reg = CFG_COMP(MT8195, ctx->param, rdma.iova[2]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
659
reg = CFG_COMP(MT8183, ctx->param, wrot.iova[0]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
661
reg = CFG_COMP(MT8195, ctx->param, wrot.iova[0]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
665
reg = CFG_COMP(MT8183, ctx->param, wrot.iova[1]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
667
reg = CFG_COMP(MT8195, ctx->param, wrot.iova[1]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
671
reg = CFG_COMP(MT8183, ctx->param, wrot.iova[2]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
673
reg = CFG_COMP(MT8195, ctx->param, wrot.iova[2]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
895
reg = CFG_COMP(MT8183, ctx->param, wdma.iova[0]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
898
reg = CFG_COMP(MT8183, ctx->param, wdma.iova[1]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-comp.c
901
reg = CFG_COMP(MT8183, ctx->param, wdma.iova[2]);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-regs.c
398
b->iova[i] = vb2_dma_contig_plane_dma_addr(vb, i);
drivers/media/platform/mediatek/mdp3/mtk-mdp3-regs.c
408
b->iova[i] = b->iova[i - 1] + b->format.plane_fmt[i - 1].size;
drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
105
u32 iova;
drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
179
u64 iova;
drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
383
wb_34[i].iova = inst->work_bufs[i].dma_addr;
drivers/media/platform/mediatek/vcodec/encoder/venc/venc_h264_if.c
385
wb[i].iova = inst->work_bufs[i].dma_addr;
drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c
192
wb[i].iova = inst->work_bufs[i].dma_addr;
drivers/media/platform/mediatek/vcodec/encoder/venc/venc_vp8_if.c
85
u32 iova;
drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c
125
err = tegra_vde_iommu_map(vde, sgt, &iova, dmabuf->size);
drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c
129
*addrp = iova_dma_addr(&vde->iova, iova);
drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c
132
iova = NULL;
drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c
139
entry->iova = iova;
drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c
28
struct iova *iova;
drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c
39
tegra_vde_iommu_unmap(entry->vde, entry->iova);
drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c
73
struct iova *iova;
drivers/media/platform/nvidia/tegra-vde/dmabuf-cache.c
91
*addrp = iova_dma_addr(&vde->iova, entry->iova);
drivers/media/platform/nvidia/tegra-vde/iommu.c
103
shift = iova_shift(&vde->iova);
drivers/media/platform/nvidia/tegra-vde/iommu.c
104
iova = reserve_iova(&vde->iova, 0x60000000 >> shift,
drivers/media/platform/nvidia/tegra-vde/iommu.c
106
if (!iova) {
drivers/media/platform/nvidia/tegra-vde/iommu.c
111
vde->iova_resv_static_addresses = iova;
drivers/media/platform/nvidia/tegra-vde/iommu.c
119
iova = reserve_iova(&vde->iova, 0xffffffff >> shift,
drivers/media/platform/nvidia/tegra-vde/iommu.c
121
if (!iova) {
drivers/media/platform/nvidia/tegra-vde/iommu.c
126
vde->iova_resv_last_page = iova;
drivers/media/platform/nvidia/tegra-vde/iommu.c
131
__free_iova(&vde->iova, vde->iova_resv_static_addresses);
drivers/media/platform/nvidia/tegra-vde/iommu.c
135
put_iova_domain(&vde->iova);
drivers/media/platform/nvidia/tegra-vde/iommu.c
148
__free_iova(&vde->iova, vde->iova_resv_last_page);
drivers/media/platform/nvidia/tegra-vde/iommu.c
149
__free_iova(&vde->iova, vde->iova_resv_static_addresses);
drivers/media/platform/nvidia/tegra-vde/iommu.c
151
put_iova_domain(&vde->iova);
drivers/media/platform/nvidia/tegra-vde/iommu.c
21
struct iova **iovap,
drivers/media/platform/nvidia/tegra-vde/iommu.c
24
struct iova *iova;
drivers/media/platform/nvidia/tegra-vde/iommu.c
30
size = iova_align(&vde->iova, size);
drivers/media/platform/nvidia/tegra-vde/iommu.c
31
shift = iova_shift(&vde->iova);
drivers/media/platform/nvidia/tegra-vde/iommu.c
33
iova = alloc_iova(&vde->iova, size >> shift, end >> shift, true);
drivers/media/platform/nvidia/tegra-vde/iommu.c
34
if (!iova)
drivers/media/platform/nvidia/tegra-vde/iommu.c
37
addr = iova_dma_addr(&vde->iova, iova);
drivers/media/platform/nvidia/tegra-vde/iommu.c
42
__free_iova(&vde->iova, iova);
drivers/media/platform/nvidia/tegra-vde/iommu.c
46
*iovap = iova;
drivers/media/platform/nvidia/tegra-vde/iommu.c
51
void tegra_vde_iommu_unmap(struct tegra_vde *vde, struct iova *iova)
drivers/media/platform/nvidia/tegra-vde/iommu.c
53
unsigned long shift = iova_shift(&vde->iova);
drivers/media/platform/nvidia/tegra-vde/iommu.c
54
unsigned long size = iova_size(iova) << shift;
drivers/media/platform/nvidia/tegra-vde/iommu.c
55
dma_addr_t addr = iova_dma_addr(&vde->iova, iova);
drivers/media/platform/nvidia/tegra-vde/iommu.c
58
__free_iova(&vde->iova, iova);
drivers/media/platform/nvidia/tegra-vde/iommu.c
64
struct iova *iova;
drivers/media/platform/nvidia/tegra-vde/iommu.c
93
init_iova_domain(&vde->iova, 1UL << order, 0);
drivers/media/platform/nvidia/tegra-vde/v4l2.c
136
if (tb->iova[i]) {
drivers/media/platform/nvidia/tegra-vde/v4l2.c
137
tegra_vde_iommu_unmap(ctx->vde, tb->iova[i]);
drivers/media/platform/nvidia/tegra-vde/v4l2.c
138
tb->iova[i] = NULL;
drivers/media/platform/nvidia/tegra-vde/v4l2.c
193
err = tegra_vde_iommu_map(vde, sgt, &tb->iova[i],
drivers/media/platform/nvidia/tegra-vde/v4l2.c
198
tb->dma_base[i] = iova_dma_addr(&vde->iova, tb->iova[i]);
drivers/media/platform/nvidia/tegra-vde/vde.c
100
err = tegra_vde_iommu_map(vde, &bo->sgt, &bo->iova, bo->size);
drivers/media/platform/nvidia/tegra-vde/vde.c
106
bo->dma_addr = iova_dma_addr(&vde->iova, bo->iova);
drivers/media/platform/nvidia/tegra-vde/vde.c
134
tegra_vde_iommu_unmap(vde, bo->iova);
drivers/media/platform/nvidia/tegra-vde/vde.h
116
struct iova_domain iova;
drivers/media/platform/nvidia/tegra-vde/vde.h
117
struct iova *iova_resv_static_addresses;
drivers/media/platform/nvidia/tegra-vde/vde.h
118
struct iova *iova_resv_last_page;
drivers/media/platform/nvidia/tegra-vde/vde.h
162
struct iova *iova[VB2_MAX_PLANES];
drivers/media/platform/nvidia/tegra-vde/vde.h
191
struct iova **iovap,
drivers/media/platform/nvidia/tegra-vde/vde.h
193
void tegra_vde_iommu_unmap(struct tegra_vde *vde, struct iova *iova);
drivers/media/platform/nvidia/tegra-vde/vde.h
83
struct iova *iova;
drivers/mfd/macsmc.c
311
if (!bfr->iova) {
drivers/mfd/macsmc.c
316
if (check_add_overflow(bfr->iova, bfr->size - 1, &bfr_end))
drivers/mfd/macsmc.c
319
if (bfr->iova < smc->sram->start || bfr->iova > smc->sram->end ||
drivers/mfd/macsmc.c
322
(unsigned long long)bfr->iova,
drivers/mfd/macsmc.c
327
bfr->iomem = smc->sram_base + (bfr->iova - smc->sram->start);
drivers/mfd/macsmc.c
345
smc->shmem.iova = message;
drivers/misc/fastrpc.c
318
static inline dma_addr_t fastrpc_ipa_to_dma_addr(struct fastrpc_channel_ctx *cctx, dma_addr_t iova)
drivers/misc/fastrpc.c
322
return iova & GENMASK_ULL(cctx->soc_data->sid_pos - 1, 0);
drivers/net/ethernet/marvell/octeontx2/af/cn20k/mbox_init.c
272
dma_addr_t iova;
drivers/net/ethernet/marvell/octeontx2/af/cn20k/mbox_init.c
295
iova = (u64)mbox_addr->iova;
drivers/net/ethernet/marvell/octeontx2/af/cn20k/mbox_init.c
298
(u64)iova);
drivers/net/ethernet/marvell/octeontx2/af/cn20k/mbox_init.c
299
iova += mbox_size;
drivers/net/ethernet/marvell/octeontx2/af/cn20k/mbox_init.c
304
rvupf_write64(rvu, RVU_PF_VF_MBOX_ADDR, (u64)mbox_addr->iova);
drivers/net/ethernet/marvell/octeontx2/af/cn20k/mbox_init.c
416
(u64)pfvf->cq_ints_ctx->iova);
drivers/net/ethernet/marvell/octeontx2/af/cn20k/mbox_init.c
427
(u64)pfvf->nix_qints_ctx->iova);
drivers/net/ethernet/marvell/octeontx2/af/common.h
40
dma_addr_t iova;
drivers/net/ethernet/marvell/octeontx2/af/common.h
63
qmem->base = dma_alloc_attrs(dev, qmem->alloc_sz, &qmem->iova,
drivers/net/ethernet/marvell/octeontx2/af/common.h
70
aligned_addr = ALIGN((u64)qmem->iova, OTX2_ALIGN);
drivers/net/ethernet/marvell/octeontx2/af/common.h
71
qmem->align = (aligned_addr - qmem->iova);
drivers/net/ethernet/marvell/octeontx2/af/common.h
73
qmem->iova += qmem->align;
drivers/net/ethernet/marvell/octeontx2/af/common.h
85
qmem->iova - qmem->align,
drivers/net/ethernet/marvell/octeontx2/af/rvu.c
609
dma_addr_t iova;
drivers/net/ethernet/marvell/octeontx2/af/rvu.c
699
iova = dma_map_resource(rvu->dev, phy_addr,
drivers/net/ethernet/marvell/octeontx2/af/rvu.c
703
if (dma_mapping_error(rvu->dev, iova))
drivers/net/ethernet/marvell/octeontx2/af/rvu.c
706
rvu_write64(rvu, BLKADDR_RVUM, RVU_AF_MSIXTR_BASE, (u64)iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu.c
707
rvu->msix_base_iova = iova;
drivers/net/ethernet/marvell/octeontx2/af/rvu.c
718
iova = dma_map_resource(rvu->dev, altaf_intr_data->gint_paddr,
drivers/net/ethernet/marvell/octeontx2/af/rvu.c
722
if (dma_mapping_error(rvu->dev, iova))
drivers/net/ethernet/marvell/octeontx2/af/rvu.c
725
altaf_intr_data->gint_iova_addr = iova;
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
107
*lmt_addr = (pa << 12) | (iova & 0xFFF);
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
74
u64 iova, u64 *lmt_addr)
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
79
if (!iova) {
drivers/net/ethernet/marvell/octeontx2/af/rvu_cn10k.c
85
rvu_write64(rvu, BLKADDR_RVUM, RVU_AF_SMMU_ADDR_REQ, iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
1146
inst.res_addr = (u64)aq->res->iova;
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
1590
(u64)pfvf->rq_ctx->iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
1609
(u64)pfvf->sq_ctx->iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
1627
(u64)pfvf->cq_ctx->iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
1649
(u64)pfvf->cq_ints_ctx->iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
1663
(u64)pfvf->nix_qints_ctx->iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
3748
(u64)mcast->mce_ctx->iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
3765
(u64)mcast->mcast_buf->iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
4938
NIX_AF_AQ_BASE, (u64)block->aq->inst->iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c
955
(u64)pfvf->rss_ctx->iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_npa.c
101
inst.res_addr = (u64)aq->res->iova;
drivers/net/ethernet/marvell/octeontx2/af/rvu_npa.c
135
req->aura.pool_addr = pfvf->pool_ctx->iova +
drivers/net/ethernet/marvell/octeontx2/af/rvu_npa.c
408
(u64)pfvf->aura_ctx->iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_npa.c
414
(u64)pfvf->npa_qints_ctx->iova);
drivers/net/ethernet/marvell/octeontx2/af/rvu_npa.c
520
NPA_AF_AQ_BASE, (u64)block->aq->inst->iova);
drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c
73
req->lmt_iova = (u64)pfvf->dync_lmt->iova;
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_ipsec.c
1016
dptr_iova = (sq->sqe_ring->iova + (sq->head * (sq->sqe_size * 2)));
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_ipsec.c
1023
inst.cptr = sa_info->iova;
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_ipsec.c
438
sa_iova = sa_info->iova;
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_ipsec.c
871
u64 dma_addr, *iova = NULL;
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_ipsec.c
886
iova = (void *)sg + sizeof(*sg);
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_ipsec.c
904
*iova++ = dma_addr;
drivers/net/ethernet/marvell/octeontx2/nic/cn10k_ipsec.c
990
inst.res_addr = sq->cpt_resp->iova + (64 * sq->head);
drivers/net/ethernet/marvell/octeontx2/nic/cn20k.c
562
aq->aura.fc_addr = pool->fc_addr->iova;
drivers/net/ethernet/marvell/octeontx2/nic/cn20k.c
634
aq->pool.stack_base = pool->stack->iova;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1122
aq->cq.base = cq->cqe->iova;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1270
u64 iova, pa;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1279
iova = sq->sqb_ptrs[sqb];
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1280
pa = otx2_iova_to_phys(pfvf->iommu_domain, iova);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1281
dma_unmap_page_attrs(pfvf->dev, iova, hw->sqb_size,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1291
u64 iova, int size)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1296
pa = otx2_iova_to_phys(pfvf->iommu_domain, iova);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1303
dma_unmap_page_attrs(pfvf->dev, iova, size,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1315
u64 iova;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1332
iova = otx2_aura_allocptr(pfvf, pool_id);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1333
while (iova) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1335
iova -= OTX2_HEAD_ROOM;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1336
otx2_free_bufs(pfvf, pool, iova, size);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1337
iova = otx2_aura_allocptr(pfvf, pool_id);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1416
aq->aura.fc_addr = pool->fc_addr->iova;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
1497
aq->pool.stack_base = pool->stack->iova;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
1165
u64 iova, int len, u16 qidx, u16 flags);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
1173
u64 iova, int size);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
590
otx2_write64(pf, RVU_PF_VF_MBOX_ADDR, (u64)mbox_addr->iova);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1136
u64 iova;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1181
iova = sq->timestamps->iova + (sq->head * sizeof(u64));
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1182
otx2_sqe_add_mem(sq, offset, NIX_SENDMEMALG_E_SETTSTMP, iova,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1282
u64 iova;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1308
iova = cqe->sg.seg_addr - OTX2_HEAD_ROOM;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1310
otx2_free_bufs(pfvf, pool, iova, pfvf->rbsize);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1421
u64 *iova = NULL;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1428
iova = (void *)sg + sizeof(*sg);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1429
*iova = dma_addr;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1455
u64 iova, int len, u16 qidx, u16 flags)
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1481
otx2_xdp_sqe_add_sg(sq, xdpf, iova, len, &offset, flags);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1500
u64 iova, pa;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1516
iova = cqe->sg.seg_addr - OTX2_HEAD_ROOM;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1517
pa = otx2_iova_to_phys(pfvf->iommu_domain, iova);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1558
otx2_dma_unmap_page(pfvf, iova, pfvf->rbsize,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
1577
otx2_dma_unmap_page(pfvf, iova, pfvf->rbsize,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
187
u64 iova, int len, struct nix_rx_parse_s *parse,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
194
va = phys_to_virt(otx2_iova_to_phys(pfvf->iommu_domain, iova));
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
219
pfvf->hw_ops->aura_freeptr(pfvf, qidx, iova & ~0x07ULL);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
666
u64 dma_addr, *iova = NULL;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
679
iova = (void *)sg + sizeof(*sg);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
694
*iova++ = dma_addr;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
776
int alg, u64 iova, int ptp_offset,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
785
mem->addr = iova;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
902
u64 *iova = NULL;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
913
iova = (void *)sg + sizeof(*sg);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
923
*iova++ = list->dma_addr[seg];
drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c
967
sq->tso_hdrs->iova + (sq->head * TSO_HEADER_SIZE);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_xsk.c
107
iova = otx2_aura_allocptr(pfvf, qidx);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_xsk.c
108
while (iova) {
drivers/net/ethernet/marvell/octeontx2/nic/otx2_xsk.c
109
iova -= OTX2_HEAD_ROOM;
drivers/net/ethernet/marvell/octeontx2/nic/otx2_xsk.c
110
otx2_free_bufs(pfvf, pool, iova, pfvf->rbsize);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_xsk.c
111
iova = otx2_aura_allocptr(pfvf, qidx);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_xsk.c
200
static void otx2_xsk_sq_append_pkt(struct otx2_nic *pfvf, u64 iova, int len,
drivers/net/ethernet/marvell/octeontx2/nic/otx2_xsk.c
223
otx2_xdp_sqe_add_sg(sq, NULL, iova, len, &offset, OTX2_AF_XDP_FRAME);
drivers/net/ethernet/marvell/octeontx2/nic/otx2_xsk.c
96
u64 iova;
drivers/net/ethernet/marvell/octeontx2/nic/qos_sq.c
100
dma_unmap_page_attrs(pfvf->dev, iova, hw->sqb_size,
drivers/net/ethernet/marvell/octeontx2/nic/qos_sq.c
121
u64 iova, pa;
drivers/net/ethernet/marvell/octeontx2/nic/qos_sq.c
130
iova = sq->sqb_ptrs[sqb];
drivers/net/ethernet/marvell/octeontx2/nic/qos_sq.c
131
pa = otx2_iova_to_phys(pfvf->iommu_domain, iova);
drivers/net/ethernet/marvell/octeontx2/nic/qos_sq.c
132
dma_unmap_page_attrs(pfvf->dev, iova, hw->sqb_size,
drivers/net/ethernet/marvell/octeontx2/nic/qos_sq.c
42
u64 iova, pa;
drivers/net/ethernet/marvell/octeontx2/nic/qos_sq.c
98
iova = sq->sqb_ptrs[ptr];
drivers/net/ethernet/marvell/octeontx2/nic/qos_sq.c
99
pa = otx2_iova_to_phys(pfvf->iommu_domain, iova);
drivers/net/ethernet/mellanox/mlx4/mr.c
418
u64 iova, u64 size, u32 access, int npages,
drivers/net/ethernet/mellanox/mlx4/mr.c
421
mr->iova = iova;
drivers/net/ethernet/mellanox/mlx4/mr.c
527
int mlx4_mr_alloc(struct mlx4_dev *dev, u32 pd, u64 iova, u64 size, u32 access,
drivers/net/ethernet/mellanox/mlx4/mr.c
537
err = mlx4_mr_alloc_reserved(dev, index, pd, iova, size,
drivers/net/ethernet/mellanox/mlx4/mr.c
590
u64 iova, u64 size, int npages,
drivers/net/ethernet/mellanox/mlx4/mr.c
599
mpt_entry->start = cpu_to_be64(iova);
drivers/net/ethernet/mellanox/mlx4/mr.c
649
mpt_entry->start = cpu_to_be64(mr->iova);
drivers/net/ipa/ipa_mem.c
459
unsigned long iova;
drivers/net/ipa/ipa_mem.c
475
iova = phys; /* We just want a direct mapping */
drivers/net/ipa/ipa_mem.c
477
ret = iommu_map(domain, iova, phys, size, IOMMU_READ | IOMMU_WRITE,
drivers/net/ipa/ipa_mem.c
482
ipa->imem_iova = iova;
drivers/net/ipa/ipa_mem.c
532
unsigned long iova;
drivers/net/ipa/ipa_mem.c
582
iova = phys; /* We just want a direct mapping */
drivers/net/ipa/ipa_mem.c
584
ret = iommu_map(domain, iova, phys, size, IOMMU_READ | IOMMU_WRITE,
drivers/net/ipa/ipa_mem.c
589
ipa->smem_iova = iova;
drivers/nvme/host/apple.c
248
if (bfr->iova)
drivers/nvme/host/apple.c
254
dma_alloc_coherent(anv->dev, bfr->size, &bfr->iova, GFP_KERNEL);
drivers/nvme/host/apple.c
258
ret = apple_sart_add_allowed_region(anv->sart, bfr->iova, bfr->size);
drivers/nvme/host/apple.c
260
dma_free_coherent(anv->dev, bfr->size, bfr->buffer, bfr->iova);
drivers/nvme/host/apple.c
273
apple_sart_remove_allowed_region(anv->sart, bfr->iova, bfr->size);
drivers/nvme/host/apple.c
274
dma_free_coherent(anv->dev, bfr->size, bfr->buffer, bfr->iova);
drivers/nvme/host/rdma.c
1342
sg->addr = cpu_to_le64(req->mr->iova);
drivers/nvme/host/rdma.c
1449
sg->addr = cpu_to_le64(req->mr->iova);
drivers/parisc/ccio-dma.c
273
#define CCIO_IOVP(iova) ((iova) & IOVP_MASK)
drivers/parisc/ccio-dma.c
421
ccio_free_range(struct ioc *ioc, dma_addr_t iova, unsigned long pages_mapped)
drivers/parisc/ccio-dma.c
423
unsigned long iovp = CCIO_IOVP(iova);
drivers/parisc/ccio-dma.c
650
ccio_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt)
drivers/parisc/ccio-dma.c
652
u32 iovp = (u32)CCIO_IOVP(iova);
drivers/parisc/ccio-dma.c
677
ccio_clear_io_tlb(ioc, CCIO_IOVP(iova), saved_byte_cnt);
drivers/parisc/ccio-dma.c
795
ccio_unmap_phys(struct device *dev, dma_addr_t iova, size_t size,
drivers/parisc/ccio-dma.c
800
dma_addr_t offset = iova & ~IOVP_MASK;
drivers/parisc/ccio-dma.c
810
__func__, (long)iova, size);
drivers/parisc/ccio-dma.c
812
iova ^= offset; /* clear offset bits */
drivers/parisc/ccio-dma.c
823
ccio_mark_invalid(ioc, iova, size);
drivers/parisc/ccio-dma.c
824
ccio_free_range(ioc, iova, (size >> IOVP_SHIFT));
drivers/parisc/sba_iommu.c
311
#define SBA_IOVP(ioc,iova) ((iova) & (ioc)->iovp_mask)
drivers/parisc/sba_iommu.c
315
#define SBA_IOVP(ioc,iova) (iova)
drivers/parisc/sba_iommu.c
494
sba_free_range(struct ioc *ioc, dma_addr_t iova, size_t size)
drivers/parisc/sba_iommu.c
496
unsigned long iovp = SBA_IOVP(ioc, iova);
drivers/parisc/sba_iommu.c
507
__func__, (uint) iova, size,
drivers/parisc/sba_iommu.c
610
sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt)
drivers/parisc/sba_iommu.c
612
u32 iovp = (u32) SBA_IOVP(ioc,iova);
drivers/parisc/sba_iommu.c
799
sba_unmap_phys(struct device *dev, dma_addr_t iova, size_t size,
drivers/parisc/sba_iommu.c
809
DBG_RUN("%s() iovp 0x%lx/%x\n", __func__, (long) iova, size);
drivers/parisc/sba_iommu.c
816
offset = iova & ~IOVP_MASK;
drivers/parisc/sba_iommu.c
817
iova ^= offset; /* clear offset bits */
drivers/parisc/sba_iommu.c
828
sba_mark_invalid(ioc, iova, size);
drivers/parisc/sba_iommu.c
835
d->iova = iova;
drivers/parisc/sba_iommu.c
840
sba_free_range(ioc, d->iova, d->size);
drivers/parisc/sba_iommu.c
848
sba_free_range(ioc, iova, size);
drivers/remoteproc/qcom_q6v5_adsp.c
344
unsigned long iova;
drivers/remoteproc/qcom_q6v5_adsp.c
360
iova = adsp->mem_phys | (sid << 32);
drivers/remoteproc/qcom_q6v5_adsp.c
362
ret = iommu_map(rproc->domain, iova, adsp->mem_phys,
drivers/remoteproc/remoteproc_core.c
82
unsigned long iova, int flags, void *token)
drivers/remoteproc/remoteproc_core.c
86
dev_err(dev, "iommu fault: da 0x%lx flags 0x%x\n", iova, flags);
drivers/s390/cio/vfio_ccw_cp.c
176
static bool page_array_iova_pinned(struct page_array *pa, u64 iova, u64 length)
drivers/s390/cio/vfio_ccw_cp.c
178
u64 iova_pfn_start = iova >> PAGE_SHIFT;
drivers/s390/cio/vfio_ccw_cp.c
179
u64 iova_pfn_end = (iova + length - 1) >> PAGE_SHIFT;
drivers/s390/cio/vfio_ccw_cp.c
376
static int ccwchain_calc_length(u64 iova, struct channel_program *cp)
drivers/s390/cio/vfio_ccw_cp.c
392
if (!ccw_is_chain(ccw) && !is_tic_within_range(ccw, iova, cnt))
drivers/s390/cio/vfio_ccw_cp.c
570
u64 iova;
drivers/s390/cio/vfio_ccw_cp.c
581
ret = vfio_dma_rw(vdev, dma32_to_u32(ccw->cda), &iova, size, false);
drivers/s390/cio/vfio_ccw_cp.c
590
iova = iova >> 32;
drivers/s390/cio/vfio_ccw_cp.c
592
iova = dma32_to_u32(ccw->cda);
drivers/s390/cio/vfio_ccw_cp.c
597
return idal_2k_nr_words((void *)iova, bytes);
drivers/s390/cio/vfio_ccw_cp.c
601
return idal_2k_nr_words((void *)iova, bytes);
drivers/s390/cio/vfio_ccw_cp.c
604
return idal_nr_words((void *)iova, bytes);
drivers/s390/cio/vfio_ccw_cp.c
948
bool cp_iova_pinned(struct channel_program *cp, u64 iova, u64 length)
drivers/s390/cio/vfio_ccw_cp.c
958
if (page_array_iova_pinned(&chain->ch_pa[i], iova, length))
drivers/s390/cio/vfio_ccw_cp.h
48
bool cp_iova_pinned(struct channel_program *cp, u64 iova, u64 length);
drivers/s390/cio/vfio_ccw_ops.c
35
static void vfio_ccw_dma_unmap(struct vfio_device *vdev, u64 iova, u64 length)
drivers/s390/cio/vfio_ccw_ops.c
41
if (!cp_iova_pinned(&private->cp, iova, length))
drivers/s390/crypto/vfio_ap_ops.c
1850
static void unmap_iova(struct ap_matrix_mdev *matrix_mdev, u64 iova, u64 length)
drivers/s390/crypto/vfio_ap_ops.c
1857
if (q->saved_iova >= iova && q->saved_iova < iova + length)
drivers/s390/crypto/vfio_ap_ops.c
1862
static void vfio_ap_mdev_dma_unmap(struct vfio_device *vdev, u64 iova,
drivers/s390/crypto/vfio_ap_ops.c
1870
unmap_iova(matrix_mdev, iova, length);
drivers/soc/apple/rtkit.c
269
buffer->iova = FIELD_GET(APPLE_RTKIT_OSLOG_IOVA, msg) << 12;
drivers/soc/apple/rtkit.c
272
buffer->iova = FIELD_GET(APPLE_RTKIT_BUFFER_REQUEST_IOVA, msg);
drivers/soc/apple/rtkit.c
280
buffer->size, &buffer->iova);
drivers/soc/apple/rtkit.c
282
if (buffer->iova && !rtk->ops->shmem_setup) {
drivers/soc/apple/rtkit.c
293
&buffer->iova, GFP_KERNEL);
drivers/soc/apple/rtkit.c
307
buffer->iova >> 12);
drivers/soc/apple/rtkit.c
314
buffer->iova);
drivers/soc/apple/rtkit.c
327
buffer->iova = 0;
drivers/soc/apple/rtkit.c
342
dma_free_coherent(rtk->dev, bfr->size, bfr->buffer, bfr->iova);
drivers/soc/apple/rtkit.c
346
bfr->iova = 0;
drivers/soc/qcom/qcom-geni-se.c
791
void geni_se_tx_init_dma(struct geni_se *se, dma_addr_t iova, size_t len)
drivers/soc/qcom/qcom-geni-se.c
799
writel_relaxed(lower_32_bits(iova), se->base + SE_DMA_TX_PTR_L);
drivers/soc/qcom/qcom-geni-se.c
800
writel_relaxed(upper_32_bits(iova), se->base + SE_DMA_TX_PTR_H);
drivers/soc/qcom/qcom-geni-se.c
818
dma_addr_t *iova)
drivers/soc/qcom/qcom-geni-se.c
825
*iova = dma_map_single(wrapper->dev, buf, len, DMA_TO_DEVICE);
drivers/soc/qcom/qcom-geni-se.c
826
if (dma_mapping_error(wrapper->dev, *iova))
drivers/soc/qcom/qcom-geni-se.c
829
geni_se_tx_init_dma(se, *iova, len);
drivers/soc/qcom/qcom-geni-se.c
842
void geni_se_rx_init_dma(struct geni_se *se, dma_addr_t iova, size_t len)
drivers/soc/qcom/qcom-geni-se.c
850
writel_relaxed(lower_32_bits(iova), se->base + SE_DMA_RX_PTR_L);
drivers/soc/qcom/qcom-geni-se.c
851
writel_relaxed(upper_32_bits(iova), se->base + SE_DMA_RX_PTR_H);
drivers/soc/qcom/qcom-geni-se.c
870
dma_addr_t *iova)
drivers/soc/qcom/qcom-geni-se.c
877
*iova = dma_map_single(wrapper->dev, buf, len, DMA_FROM_DEVICE);
drivers/soc/qcom/qcom-geni-se.c
878
if (dma_mapping_error(wrapper->dev, *iova))
drivers/soc/qcom/qcom-geni-se.c
881
geni_se_rx_init_dma(se, *iova, len);
drivers/soc/qcom/qcom-geni-se.c
894
void geni_se_tx_dma_unprep(struct geni_se *se, dma_addr_t iova, size_t len)
drivers/soc/qcom/qcom-geni-se.c
898
if (!dma_mapping_error(wrapper->dev, iova))
drivers/soc/qcom/qcom-geni-se.c
899
dma_unmap_single(wrapper->dev, iova, len, DMA_TO_DEVICE);
drivers/soc/qcom/qcom-geni-se.c
911
void geni_se_rx_dma_unprep(struct geni_se *se, dma_addr_t iova, size_t len)
drivers/soc/qcom/qcom-geni-se.c
915
if (!dma_mapping_error(wrapper->dev, iova))
drivers/soc/qcom/qcom-geni-se.c
916
dma_unmap_single(wrapper->dev, iova, len, DMA_FROM_DEVICE);
drivers/staging/media/ipu3/ipu3-dmamap.c
102
struct iova *iova;
drivers/staging/media/ipu3/ipu3-dmamap.c
107
iova = alloc_iova(&imgu->iova_domain, size >> shift,
drivers/staging/media/ipu3/ipu3-dmamap.c
109
if (!iova)
drivers/staging/media/ipu3/ipu3-dmamap.c
117
iovaddr = iova_dma_addr(&imgu->iova_domain, iova);
drivers/staging/media/ipu3/ipu3-dmamap.c
133
map->daddr = iova_dma_addr(&imgu->iova_domain, iova);
drivers/staging/media/ipu3/ipu3-dmamap.c
142
imgu_mmu_unmap(imgu->mmu, iova_dma_addr(&imgu->iova_domain, iova),
drivers/staging/media/ipu3/ipu3-dmamap.c
146
__free_iova(&imgu->iova_domain, iova);
drivers/staging/media/ipu3/ipu3-dmamap.c
153
struct iova *iova;
drivers/staging/media/ipu3/ipu3-dmamap.c
155
iova = find_iova(&imgu->iova_domain,
drivers/staging/media/ipu3/ipu3-dmamap.c
157
if (WARN_ON(!iova))
drivers/staging/media/ipu3/ipu3-dmamap.c
160
imgu_mmu_unmap(imgu->mmu, iova_dma_addr(&imgu->iova_domain, iova),
drivers/staging/media/ipu3/ipu3-dmamap.c
161
iova_size(iova) << iova_shift(&imgu->iova_domain));
drivers/staging/media/ipu3/ipu3-dmamap.c
163
__free_iova(&imgu->iova_domain, iova);
drivers/staging/media/ipu3/ipu3-dmamap.c
189
struct iova *iova;
drivers/staging/media/ipu3/ipu3-dmamap.c
207
iova = alloc_iova(&imgu->iova_domain, size >> shift,
drivers/staging/media/ipu3/ipu3-dmamap.c
209
if (!iova)
drivers/staging/media/ipu3/ipu3-dmamap.c
213
iova->pfn_lo, iova->pfn_hi);
drivers/staging/media/ipu3/ipu3-dmamap.c
215
if (imgu_mmu_map_sg(imgu->mmu, iova_dma_addr(&imgu->iova_domain, iova),
drivers/staging/media/ipu3/ipu3-dmamap.c
220
map->daddr = iova_dma_addr(&imgu->iova_domain, iova);
drivers/staging/media/ipu3/ipu3-dmamap.c
226
__free_iova(&imgu->iova_domain, iova);
drivers/staging/media/ipu3/ipu3-mmu.c
154
static inline void address_to_pte_idx(unsigned long iova, u32 *l1pt_idx,
drivers/staging/media/ipu3/ipu3-mmu.c
157
iova >>= IPU3_PAGE_SHIFT;
drivers/staging/media/ipu3/ipu3-mmu.c
160
*l2pt_idx = iova & IPU3_L2PT_MASK;
drivers/staging/media/ipu3/ipu3-mmu.c
162
iova >>= IPU3_L2PT_SHIFT;
drivers/staging/media/ipu3/ipu3-mmu.c
165
*l1pt_idx = iova & IPU3_L1PT_MASK;
drivers/staging/media/ipu3/ipu3-mmu.c
210
static int __imgu_mmu_map(struct imgu_mmu *mmu, unsigned long iova,
drivers/staging/media/ipu3/ipu3-mmu.c
220
address_to_pte_idx(iova, &l1pt_idx, &l2pt_idx);
drivers/staging/media/ipu3/ipu3-mmu.c
251
int imgu_mmu_map(struct imgu_mmu_info *info, unsigned long iova,
drivers/staging/media/ipu3/ipu3-mmu.c
262
if (!IS_ALIGNED(iova | paddr | size, IPU3_PAGE_SIZE)) {
drivers/staging/media/ipu3/ipu3-mmu.c
264
iova, &paddr, size);
drivers/staging/media/ipu3/ipu3-mmu.c
269
iova, &paddr, size);
drivers/staging/media/ipu3/ipu3-mmu.c
272
dev_dbg(mmu->dev, "mapping: iova 0x%lx pa %pa\n", iova, &paddr);
drivers/staging/media/ipu3/ipu3-mmu.c
274
ret = __imgu_mmu_map(mmu, iova, paddr);
drivers/staging/media/ipu3/ipu3-mmu.c
278
iova += IPU3_PAGE_SIZE;
drivers/staging/media/ipu3/ipu3-mmu.c
299
size_t imgu_mmu_map_sg(struct imgu_mmu_info *info, unsigned long iova,
drivers/staging/media/ipu3/ipu3-mmu.c
320
ret = imgu_mmu_map(info, iova + mapped, phys, s_length);
drivers/staging/media/ipu3/ipu3-mmu.c
333
imgu_mmu_unmap(info, iova, mapped);
drivers/staging/media/ipu3/ipu3-mmu.c
339
unsigned long iova, size_t size)
drivers/staging/media/ipu3/ipu3-mmu.c
349
address_to_pte_idx(iova, &l1pt_idx, &l2pt_idx);
drivers/staging/media/ipu3/ipu3-mmu.c
379
size_t imgu_mmu_unmap(struct imgu_mmu_info *info, unsigned long iova,
drivers/staging/media/ipu3/ipu3-mmu.c
390
if (!IS_ALIGNED(iova | size, IPU3_PAGE_SIZE)) {
drivers/staging/media/ipu3/ipu3-mmu.c
392
iova, size);
drivers/staging/media/ipu3/ipu3-mmu.c
396
dev_dbg(mmu->dev, "unmap this: iova 0x%lx size 0x%zx\n", iova, size);
drivers/staging/media/ipu3/ipu3-mmu.c
403
unmapped_page = __imgu_mmu_unmap(mmu, iova, IPU3_PAGE_SIZE);
drivers/staging/media/ipu3/ipu3-mmu.c
408
iova, unmapped_page);
drivers/staging/media/ipu3/ipu3-mmu.c
410
iova += unmapped_page;
drivers/staging/media/ipu3/ipu3-mmu.h
30
int imgu_mmu_map(struct imgu_mmu_info *info, unsigned long iova,
drivers/staging/media/ipu3/ipu3-mmu.h
32
size_t imgu_mmu_unmap(struct imgu_mmu_info *info, unsigned long iova,
drivers/staging/media/ipu3/ipu3-mmu.h
34
size_t imgu_mmu_map_sg(struct imgu_mmu_info *info, unsigned long iova,
drivers/staging/media/ipu7/ipu7-dma.c
163
struct iova *iova;
drivers/staging/media/ipu7/ipu7-dma.c
174
iova = alloc_iova(&mmu->dmap->iovad, count,
drivers/staging/media/ipu7/ipu7-dma.c
176
if (!iova)
drivers/staging/media/ipu7/ipu7-dma.c
184
size, iova->pfn_lo, iova->pfn_hi);
drivers/staging/media/ipu7/ipu7-dma.c
185
for (i = 0; iova->pfn_lo + i <= iova->pfn_hi; i++) {
drivers/staging/media/ipu7/ipu7-dma.c
197
PFN_PHYS(iova->pfn_lo + i), pci_dma_addr,
drivers/staging/media/ipu7/ipu7-dma.c
213
*dma_handle = PFN_PHYS(iova->pfn_lo);
drivers/staging/media/ipu7/ipu7-dma.c
224
ipu7_iova = PFN_PHYS(iova->pfn_lo + i);
drivers/staging/media/ipu7/ipu7-dma.c
236
__free_iova(&mmu->dmap->iovad, iova);
drivers/staging/media/ipu7/ipu7-dma.c
249
struct iova *iova = find_iova(&mmu->dmap->iovad, PHYS_PFN(dma_handle));
drivers/staging/media/ipu7/ipu7-dma.c
255
if (WARN_ON(!iova))
drivers/staging/media/ipu7/ipu7-dma.c
277
ipu7_iova = PFN_PHYS(iova->pfn_lo + i);
drivers/staging/media/ipu7/ipu7-dma.c
284
ipu7_mmu_unmap(mmu->dmap->mmu_info, PFN_PHYS(iova->pfn_lo),
drivers/staging/media/ipu7/ipu7-dma.c
285
PFN_PHYS(iova_size(iova)));
drivers/staging/media/ipu7/ipu7-dma.c
29
static struct vm_info *get_vm_info(struct ipu7_mmu *mmu, dma_addr_t iova)
drivers/staging/media/ipu7/ipu7-dma.c
291
__free_iova(&mmu->dmap->iovad, iova);
drivers/staging/media/ipu7/ipu7-dma.c
298
void *addr, dma_addr_t iova, size_t size,
drivers/staging/media/ipu7/ipu7-dma.c
307
info = get_vm_info(mmu, iova);
drivers/staging/media/ipu7/ipu7-dma.c
336
struct iova *iova = find_iova(&mmu->dmap->iovad,
drivers/staging/media/ipu7/ipu7-dma.c
34
if (iova >= info->ipu7_iova &&
drivers/staging/media/ipu7/ipu7-dma.c
345
if (WARN_ON(!iova))
drivers/staging/media/ipu7/ipu7-dma.c
35
iova < (info->ipu7_iova + info->size))
drivers/staging/media/ipu7/ipu7-dma.c
365
iova->pfn_lo, iova->pfn_hi);
drivers/staging/media/ipu7/ipu7-dma.c
366
ipu7_mmu_unmap(mmu->dmap->mmu_info, PFN_PHYS(iova->pfn_lo),
drivers/staging/media/ipu7/ipu7-dma.c
367
PFN_PHYS(iova_size(iova)));
drivers/staging/media/ipu7/ipu7-dma.c
370
__free_iova(&mmu->dmap->iovad, iova);
drivers/staging/media/ipu7/ipu7-dma.c
381
struct iova *iova;
drivers/staging/media/ipu7/ipu7-dma.c
409
iova = reserve_iova(&mmu->dmap->iovad, lo, hi);
drivers/staging/media/ipu7/ipu7-dma.c
410
if (!iova) {
drivers/staging/media/ipu7/ipu7-dma.c
416
iova = alloc_iova(&mmu->dmap->iovad, npages,
drivers/staging/media/ipu7/ipu7-dma.c
419
if (!iova)
drivers/staging/media/ipu7/ipu7-dma.c
423
dev_dbg(dev, "dmamap: iova low pfn %lu, high pfn %lu\n", iova->pfn_lo,
drivers/staging/media/ipu7/ipu7-dma.c
424
iova->pfn_hi);
drivers/staging/media/ipu7/ipu7-dma.c
426
iova_addr = iova->pfn_lo;
drivers/staging/media/ipu7/ipu7-dma.h
34
void *addr, dma_addr_t iova, size_t size,
drivers/staging/media/ipu7/ipu7-mmu.c
240
static void l2_unmap(struct ipu7_mmu_info *mmu_info, unsigned long iova,
drivers/staging/media/ipu7/ipu7-mmu.c
250
for (l1_idx = iova >> ISP_L1PT_SHIFT;
drivers/staging/media/ipu7/ipu7-mmu.c
254
l1_idx, iova);
drivers/staging/media/ipu7/ipu7-mmu.c
259
iova, l1_idx);
drivers/staging/media/ipu7/ipu7-mmu.c
265
for (l2_idx = (iova & ISP_L2PT_MASK) >> ISP_L2PT_SHIFT;
drivers/staging/media/ipu7/ipu7-mmu.c
274
iova += ISP_PAGE_SIZE;
drivers/staging/media/ipu7/ipu7-mmu.c
289
static int l2_map(struct ipu7_mmu_info *mmu_info, unsigned long iova,
drivers/staging/media/ipu7/ipu7-mmu.c
306
for (l1_idx = iova >> ISP_L1PT_SHIFT;
drivers/staging/media/ipu7/ipu7-mmu.c
310
l1_idx, (u32)iova);
drivers/staging/media/ipu7/ipu7-mmu.c
345
for (l2_idx = (iova & ISP_L2PT_MASK) >> ISP_L2PT_SHIFT;
drivers/staging/media/ipu7/ipu7-mmu.c
352
iova += ISP_PAGE_SIZE;
drivers/staging/media/ipu7/ipu7-mmu.c
373
l2_unmap(mmu_info, iova - mapped, paddr - mapped, mapped);
drivers/staging/media/ipu7/ipu7-mmu.c
378
static int __ipu7_mmu_map(struct ipu7_mmu_info *mmu_info, unsigned long iova,
drivers/staging/media/ipu7/ipu7-mmu.c
381
u32 iova_start = round_down(iova, ISP_PAGE_SIZE);
drivers/staging/media/ipu7/ipu7-mmu.c
382
u32 iova_end = ALIGN(iova + size, ISP_PAGE_SIZE);
drivers/staging/media/ipu7/ipu7-mmu.c
392
unsigned long iova, size_t size)
drivers/staging/media/ipu7/ipu7-mmu.c
394
l2_unmap(mmu_info, iova, 0, size);
drivers/staging/media/ipu7/ipu7-mmu.c
401
struct iova *iova;
drivers/staging/media/ipu7/ipu7-mmu.c
407
iova = alloc_iova(&mmu->dmap->iovad, n_pages,
drivers/staging/media/ipu7/ipu7-mmu.c
409
if (!iova) {
drivers/staging/media/ipu7/ipu7-mmu.c
428
iova_addr = iova->pfn_lo;
drivers/staging/media/ipu7/ipu7-mmu.c
441
mmu->iova_trash_page = PFN_PHYS(iova->pfn_lo);
drivers/staging/media/ipu7/ipu7-mmu.c
447
ipu7_mmu_unmap(mmu->dmap->mmu_info, PFN_PHYS(iova->pfn_lo),
drivers/staging/media/ipu7/ipu7-mmu.c
448
PFN_PHYS(iova_size(iova)));
drivers/staging/media/ipu7/ipu7-mmu.c
452
__free_iova(&mmu->dmap->iovad, iova);
drivers/staging/media/ipu7/ipu7-mmu.c
681
dma_addr_t iova)
drivers/staging/media/ipu7/ipu7-mmu.c
688
l2_pt = mmu_info->l2_pts[iova >> ISP_L1PT_SHIFT];
drivers/staging/media/ipu7/ipu7-mmu.c
689
phy_addr = (phys_addr_t)l2_pt[(iova & ISP_L2PT_MASK) >> ISP_L2PT_SHIFT];
drivers/staging/media/ipu7/ipu7-mmu.c
696
void ipu7_mmu_unmap(struct ipu7_mmu_info *mmu_info, unsigned long iova,
drivers/staging/media/ipu7/ipu7-mmu.c
701
dev_dbg(mmu_info->dev, "unmapping iova 0x%lx size 0x%zx\n", iova, size);
drivers/staging/media/ipu7/ipu7-mmu.c
711
if (!IS_ALIGNED(iova | size, min_pagesz)) {
drivers/staging/media/ipu7/ipu7-mmu.c
714
iova, size, min_pagesz);
drivers/staging/media/ipu7/ipu7-mmu.c
718
__ipu7_mmu_unmap(mmu_info, iova, size);
drivers/staging/media/ipu7/ipu7-mmu.c
721
int ipu7_mmu_map(struct ipu7_mmu_info *mmu_info, unsigned long iova,
drivers/staging/media/ipu7/ipu7-mmu.c
737
if (!IS_ALIGNED(iova | paddr | size, min_pagesz)) {
drivers/staging/media/ipu7/ipu7-mmu.c
740
iova, &paddr, size, min_pagesz);
drivers/staging/media/ipu7/ipu7-mmu.c
745
iova, &paddr, size);
drivers/staging/media/ipu7/ipu7-mmu.c
747
return __ipu7_mmu_map(mmu_info, iova, paddr, size);
drivers/staging/media/ipu7/ipu7-mmu.c
754
struct iova *iova;
drivers/staging/media/ipu7/ipu7-mmu.c
758
iova = find_iova(&dmap->iovad, PHYS_PFN(mmu->iova_trash_page));
drivers/staging/media/ipu7/ipu7-mmu.c
759
if (iova) {
drivers/staging/media/ipu7/ipu7-mmu.c
761
ipu7_mmu_unmap(mmu_info, PFN_PHYS(iova->pfn_lo),
drivers/staging/media/ipu7/ipu7-mmu.c
762
PFN_PHYS(iova_size(iova)));
drivers/staging/media/ipu7/ipu7-mmu.c
763
__free_iova(&dmap->iovad, iova);
drivers/staging/media/ipu7/ipu7-mmu.h
408
int ipu7_mmu_map(struct ipu7_mmu_info *mmu_info, unsigned long iova,
drivers/staging/media/ipu7/ipu7-mmu.h
410
void ipu7_mmu_unmap(struct ipu7_mmu_info *mmu_info, unsigned long iova,
drivers/staging/media/ipu7/ipu7-mmu.h
413
dma_addr_t iova);
drivers/vdpa/vdpa_sim/vdpa_sim.c
699
u64 iova, u64 size,
drivers/vdpa/vdpa_sim/vdpa_sim.c
713
ret = vhost_iotlb_add_range_ctx(&vdpasim->iommu[asid], iova,
drivers/vdpa/vdpa_sim/vdpa_sim.c
714
iova + size - 1, pa, perm, opaque);
drivers/vdpa/vdpa_sim/vdpa_sim.c
721
u64 iova, u64 size)
drivers/vdpa/vdpa_sim/vdpa_sim.c
734
vhost_iotlb_del_range(&vdpasim->iommu[asid], iova, iova + size - 1);
drivers/vdpa/vdpa_user/iova_domain.c
104
u64 iova, u64 size, u64 paddr)
drivers/vdpa/vdpa_user/iova_domain.c
108
u64 last = iova + size - 1;
drivers/vdpa/vdpa_user/iova_domain.c
110
while (iova <= last) {
drivers/vdpa/vdpa_user/iova_domain.c
123
map = &domain->bounce_maps[iova >> BOUNCE_MAP_SHIFT];
drivers/vdpa/vdpa_user/iova_domain.c
125
head_map = &domain->bounce_maps[(iova & PAGE_MASK) >> BOUNCE_MAP_SHIFT];
drivers/vdpa/vdpa_user/iova_domain.c
137
iova += BOUNCE_MAP_SIZE;
drivers/vdpa/vdpa_user/iova_domain.c
143
u64 iova, u64 size)
drivers/vdpa/vdpa_user/iova_domain.c
146
u64 last = iova + size - 1;
drivers/vdpa/vdpa_user/iova_domain.c
148
while (iova <= last) {
drivers/vdpa/vdpa_user/iova_domain.c
149
map = &domain->bounce_maps[iova >> BOUNCE_MAP_SHIFT];
drivers/vdpa/vdpa_user/iova_domain.c
151
iova += BOUNCE_MAP_SIZE;
drivers/vdpa/vdpa_user/iova_domain.c
185
dma_addr_t iova, size_t size,
drivers/vdpa/vdpa_user/iova_domain.c
194
if (iova >= domain->bounce_size)
drivers/vdpa/vdpa_user/iova_domain.c
198
map = &domain->bounce_maps[iova >> BOUNCE_MAP_SHIFT];
drivers/vdpa/vdpa_user/iova_domain.c
199
head_offset = offset_in_page(iova);
drivers/vdpa/vdpa_user/iova_domain.c
200
offset = offset_in_bounce_page(iova);
drivers/vdpa/vdpa_user/iova_domain.c
214
iova += sz;
drivers/vdpa/vdpa_user/iova_domain.c
219
vduse_domain_get_coherent_page(struct vduse_iova_domain *domain, u64 iova)
drivers/vdpa/vdpa_user/iova_domain.c
221
u64 start = iova & PAGE_MASK;
drivers/vdpa/vdpa_user/iova_domain.c
231
page = pfn_to_page((map->addr + iova - map->start) >> PAGE_SHIFT);
drivers/vdpa/vdpa_user/iova_domain.c
240
vduse_domain_get_bounce_page(struct vduse_iova_domain *domain, u64 iova)
drivers/vdpa/vdpa_user/iova_domain.c
246
map = &domain->bounce_maps[iova >> BOUNCE_MAP_SHIFT];
drivers/vdpa/vdpa_user/iova_domain.c
419
dma_addr_t iova, size_t size)
drivers/vdpa/vdpa_user/iova_domain.c
424
free_iova_fast(iovad, iova >> shift, iova_len);
drivers/vdpa/vdpa_user/iova_domain.c
455
dma_addr_t iova = vduse_domain_alloc_iova(iovad, size, limit);
drivers/vdpa/vdpa_user/iova_domain.c
457
if (!iova)
drivers/vdpa/vdpa_user/iova_domain.c
464
if (vduse_domain_map_bounce_page(domain, (u64)iova, (u64)size, pa))
drivers/vdpa/vdpa_user/iova_domain.c
469
vduse_domain_bounce(domain, iova, size, DMA_TO_DEVICE);
drivers/vdpa/vdpa_user/iova_domain.c
473
return iova;
drivers/vdpa/vdpa_user/iova_domain.c
477
vduse_domain_free_iova(iovad, iova, size);
drivers/vdpa/vdpa_user/iova_domain.c
501
dma_addr_t iova = vduse_domain_alloc_iova(iovad, size, limit);
drivers/vdpa/vdpa_user/iova_domain.c
503
if (!iova)
drivers/vdpa/vdpa_user/iova_domain.c
507
if (vduse_iotlb_add_range(domain, (u64)iova, (u64)iova + size - 1,
drivers/vdpa/vdpa_user/iova_domain.c
509
domain->file, (u64)iova)) {
drivers/vdpa/vdpa_user/iova_domain.c
515
return iova;
drivers/vdpa/vdpa_user/iova_domain.c
518
vduse_domain_free_iova(iovad, iova, size);
drivers/vdpa/vdpa_user/iova_domain.c
549
unsigned long iova = vmf->pgoff << PAGE_SHIFT;
drivers/vdpa/vdpa_user/iova_domain.c
555
if (iova < domain->bounce_size)
drivers/vdpa/vdpa_user/iova_domain.c
556
page = vduse_domain_get_bounce_page(domain, iova);
drivers/vdpa/vdpa_user/iova_domain.c
558
page = vduse_domain_get_coherent_page(domain, iova);
drivers/vdpa/vdpa_user/vduse_dev.c
1203
u64 iova, u64 size)
drivers/vdpa/vdpa_user/vduse_dev.c
1216
if (dev->as[asid].umem->iova != iova ||
drivers/vdpa/vdpa_user/vduse_dev.c
1235
u32 asid, u64 iova, u64 uaddr, u64 size)
drivers/vdpa/vdpa_user/vduse_dev.c
1245
iova != 0 || uaddr & ~PAGE_MASK)
drivers/vdpa/vdpa_user/vduse_dev.c
1283
umem->iova = iova;
drivers/vdpa/vdpa_user/vduse_dev.c
1570
ret = vduse_dev_reg_umem(dev, asid, umem.iova,
drivers/vdpa/vdpa_user/vduse_dev.c
1593
ret = vduse_dev_dereg_umem(dev, asid, umem.iova,
drivers/vdpa/vdpa_user/vduse_dev.c
350
msg.req.iova.start = start;
drivers/vdpa/vdpa_user/vduse_dev.c
351
msg.req.iova.last = last;
drivers/vdpa/vdpa_user/vduse_dev.c
93
unsigned long iova;
drivers/vfio/container.c
532
dma_addr_t iova, int npage,
drivers/vfio/container.c
544
return driver->ops->pin_pages(container->iommu_data, iommu_group, iova,
drivers/vfio/container.c
549
dma_addr_t iova, int npage)
drivers/vfio/container.c
556
container->iommu_driver->ops->unpin_pages(container->iommu_data, iova,
drivers/vfio/container.c
561
dma_addr_t iova, void *data,
drivers/vfio/container.c
569
return driver->ops->dma_rw(container->iommu_data, iova, data, len,
drivers/vfio/iommufd.c
234
static void vfio_emulated_unmap(void *data, unsigned long iova,
drivers/vfio/iommufd.c
240
vdev->ops->dma_unmap(vdev, iova, length);
drivers/vfio/pci/mlx5/cmd.c
1025
u32 tracker_id, unsigned long iova,
drivers/vfio/pci/mlx5/cmd.c
1040
MLX5_SET64(page_track, obj_context, range_start_address, iova);
drivers/vfio/pci/mlx5/cmd.c
1740
int mlx5vf_tracker_read_and_clear(struct vfio_device *vdev, unsigned long iova,
drivers/vfio/pci/mlx5/cmd.c
1768
err = mlx5vf_cmd_modify_tracker(mdev, tracker->id, iova, length,
drivers/vfio/pci/mlx5/cmd.h
252
int mlx5vf_tracker_read_and_clear(struct vfio_device *vdev, unsigned long iova,
drivers/vfio/pci/pds/dirty.c
507
pds_vfio_get_region(struct pds_vfio_pci_device *pds_vfio, unsigned long iova)
drivers/vfio/pci/pds/dirty.c
514
if (iova >= region->start &&
drivers/vfio/pci/pds/dirty.c
515
iova < (region->start + region->size))
drivers/vfio/pci/pds/dirty.c
524
unsigned long iova, unsigned long length)
drivers/vfio/pci/pds/dirty.c
540
region = pds_vfio_get_region(pds_vfio, iova);
drivers/vfio/pci/pds/dirty.c
543
pds_vfio->vf_id, iova, length);
drivers/vfio/pci/pds/dirty.c
553
pds_vfio->vf_id, iova, length, region->page_size,
drivers/vfio/pci/pds/dirty.c
556
if (!length || ((iova - region->start + length) > region->size)) {
drivers/vfio/pci/pds/dirty.c
558
iova, length);
drivers/vfio/pci/pds/dirty.c
579
bmp_offset = DIV_ROUND_UP((iova - region->start) /
drivers/vfio/pci/pds/dirty.c
584
iova, length, bmp_offset, bmp_bytes);
drivers/vfio/pci/pds/dirty.c
602
int pds_vfio_dma_logging_report(struct vfio_device *vdev, unsigned long iova,
drivers/vfio/pci/pds/dirty.c
611
err = pds_vfio_dirty_sync(pds_vfio, dirty, iova, length);
drivers/vfio/pci/pds/dirty.h
34
int pds_vfio_dma_logging_report(struct vfio_device *vdev, unsigned long iova,
drivers/vfio/vfio.h
247
dma_addr_t iova, int npage,
drivers/vfio/vfio.h
250
dma_addr_t iova, int npage);
drivers/vfio/vfio.h
252
dma_addr_t iova, void *data,
drivers/vfio/vfio.h
292
dma_addr_t iova, int npage,
drivers/vfio/vfio.h
299
dma_addr_t iova, int npage)
drivers/vfio/vfio.h
304
dma_addr_t iova, void *data,
drivers/vfio/vfio_iommu_spapr_tce.c
1004
ret = iommu_tce_clear_param_check(tbl, param.iova, 0,
drivers/vfio/vfio_iommu_spapr_tce.c
1010
param.iova >> tbl->it_page_shift,
drivers/vfio/vfio_iommu_spapr_tce.c
930
num = tce_iommu_find_table(container, param.iova, &tbl);
drivers/vfio/vfio_iommu_spapr_tce.c
951
ret = iommu_tce_put_param_check(tbl, param.iova, param.vaddr);
drivers/vfio/vfio_iommu_spapr_tce.c
957
param.iova >> tbl->it_page_shift,
drivers/vfio/vfio_iommu_spapr_tce.c
963
param.iova >> tbl->it_page_shift,
drivers/vfio/vfio_iommu_spapr_tce.c
997
num = tce_iommu_find_table(container, param.iova, &tbl);
drivers/vfio/vfio_iommu_type1.c
1007
dma_addr_t iova;
drivers/vfio/vfio_iommu_type1.c
1009
iova = user_iova + PAGE_SIZE * j;
drivers/vfio/vfio_iommu_type1.c
1010
dma = vfio_find_dma(iommu, iova, PAGE_SIZE);
drivers/vfio/vfio_iommu_type1.c
1011
vfio_unpin_page_external(dma, iova, do_accounting);
drivers/vfio/vfio_iommu_type1.c
1043
dma_addr_t iova = user_iova + PAGE_SIZE * i;
drivers/vfio/vfio_iommu_type1.c
1046
dma = vfio_find_dma(iommu, iova, PAGE_SIZE);
drivers/vfio/vfio_iommu_type1.c
1050
vfio_unpin_page_external(dma, iova, do_accounting);
drivers/vfio/vfio_iommu_type1.c
1069
entry->iova,
drivers/vfio/vfio_iommu_type1.c
1092
struct vfio_dma *dma, dma_addr_t iova,
drivers/vfio/vfio_iommu_type1.c
1102
unmapped = iommu_unmap_fast(domain->domain, iova, len,
drivers/vfio/vfio_iommu_type1.c
1108
entry->iova = iova;
drivers/vfio/vfio_iommu_type1.c
1131
struct vfio_dma *dma, dma_addr_t iova,
drivers/vfio/vfio_iommu_type1.c
1135
size_t unmapped = iommu_unmap(domain->domain, iova, len);
drivers/vfio/vfio_iommu_type1.c
1138
*unlocked += vfio_unpin_pages_remote(dma, iova,
drivers/vfio/vfio_iommu_type1.c
1174
iommu_unmap(d->domain, dma->iova, dma->size);
drivers/vfio/vfio_iommu_type1.c
1182
dma_addr_t iova = dma->iova + pos;
drivers/vfio/vfio_iommu_type1.c
1184
phys = iommu_iova_to_phys(domain->domain, iova);
drivers/vfio/vfio_iommu_type1.c
1196
next = iommu_iova_to_phys(domain->domain, iova + len);
drivers/vfio/vfio_iommu_type1.c
1205
unmapped = unmap_unpin_fast(domain, dma, iova, len, phys,
drivers/vfio/vfio_iommu_type1.c
1210
unmapped = unmap_unpin_slow(domain, dma, iova, len,
drivers/vfio/vfio_iommu_type1.c
1276
unsigned long bit_offset = (dma->iova - base_iova) >> pgshift;
drivers/vfio/vfio_iommu_type1.c
129
dma_addr_t iova; /* Device address */
drivers/vfio/vfio_iommu_type1.c
1308
dma_addr_t iova, dma_addr_t iova_end, size_t pgsize)
drivers/vfio/vfio_iommu_type1.c
1321
dma = vfio_find_dma(iommu, iova, 1);
drivers/vfio/vfio_iommu_type1.c
1322
if (dma && dma->iova != iova)
drivers/vfio/vfio_iommu_type1.c
1326
if (dma && dma->iova + dma->size - 1 != iova_end)
drivers/vfio/vfio_iommu_type1.c
1332
if (dma->iova < iova)
drivers/vfio/vfio_iommu_type1.c
1335
if (dma->iova > iova_end)
drivers/vfio/vfio_iommu_type1.c
1338
ret = update_user_bitmap(bitmap, iommu, dma, iova, pgsize);
drivers/vfio/vfio_iommu_type1.c
136
dma_addr_t iova;
drivers/vfio/vfio_iommu_type1.c
1385
device->ops->dma_unmap(device, dma->iova, dma->size);
drivers/vfio/vfio_iommu_type1.c
1399
dma_addr_t iova = unmap->iova;
drivers/vfio/vfio_iommu_type1.c
1414
if (iova != unmap->iova || size != unmap->size) {
drivers/vfio/vfio_iommu_type1.c
1422
if (iova & (pgsize - 1))
drivers/vfio/vfio_iommu_type1.c
1426
if (iova || size)
drivers/vfio/vfio_iommu_type1.c
1433
if (check_add_overflow(iova, size - 1, &iova_end)) {
drivers/vfio/vfio_iommu_type1.c
1479
dma = vfio_find_dma(iommu, iova, 1);
drivers/vfio/vfio_iommu_type1.c
1480
if (dma && dma->iova != iova)
drivers/vfio/vfio_iommu_type1.c
1484
if (dma && dma->iova + dma->size - 1 != iova_end)
drivers/vfio/vfio_iommu_type1.c
1489
n = first_n = vfio_find_dma_first_node(iommu, iova, iova_end);
drivers/vfio/vfio_iommu_type1.c
1493
if (dma->iova > iova_end)
drivers/vfio/vfio_iommu_type1.c
1496
if (!iommu->v2 && iova > dma->iova)
drivers/vfio/vfio_iommu_type1.c
1534
iova, pgsize);
drivers/vfio/vfio_iommu_type1.c
1553
static int vfio_iommu_map(struct vfio_iommu *iommu, dma_addr_t iova,
drivers/vfio/vfio_iommu_type1.c
1560
ret = iommu_map(d->domain, iova, (phys_addr_t)pfn << PAGE_SHIFT,
drivers/vfio/vfio_iommu_type1.c
1573
iommu_unmap(d->domain, iova, npage << PAGE_SHIFT);
drivers/vfio/vfio_iommu_type1.c
1583
dma_addr_t iova = dma->iova;
drivers/vfio/vfio_iommu_type1.c
1605
ret = vfio_iommu_map(iommu, iova + dma->size, pfn, npage,
drivers/vfio/vfio_iommu_type1.c
1608
vfio_unpin_pages_remote(dma, iova + dma->size, pfn,
drivers/vfio/vfio_iommu_type1.c
1633
struct list_head *iova = &iommu->iova_list;
drivers/vfio/vfio_iommu_type1.c
1636
list_for_each_entry(node, iova, list) {
drivers/vfio/vfio_iommu_type1.c
1645
return list_empty(iova);
drivers/vfio/vfio_iommu_type1.c
1684
dma_addr_t iova = map->iova;
drivers/vfio/vfio_iommu_type1.c
1694
if (map->size != size || map->vaddr != vaddr || map->iova != iova)
drivers/vfio/vfio_iommu_type1.c
1700
if (check_add_overflow(iova, size - 1, &iova_end) ||
drivers/vfio/vfio_iommu_type1.c
1719
if ((size | iova | vaddr) & (pgsize - 1)) {
drivers/vfio/vfio_iommu_type1.c
1724
dma = vfio_find_dma(iommu, iova, size);
drivers/vfio/vfio_iommu_type1.c
1728
} else if (!dma->vaddr_invalid || dma->iova != iova ||
drivers/vfio/vfio_iommu_type1.c
175
if (start + size - 1 < dma->iova)
drivers/vfio/vfio_iommu_type1.c
1750
if (!vfio_iommu_iova_dma_valid(iommu, iova, iova_end)) {
drivers/vfio/vfio_iommu_type1.c
1762
dma->iova = iova;
drivers/vfio/vfio_iommu_type1.c
177
else if (start > dma->iova + dma->size - 1)
drivers/vfio/vfio_iommu_type1.c
1828
dma_addr_t iova = dma->iova + pos;
drivers/vfio/vfio_iommu_type1.c
1841
phys = iommu_iova_to_phys(d->domain, iova);
drivers/vfio/vfio_iommu_type1.c
1850
i = iova + size;
drivers/vfio/vfio_iommu_type1.c
1877
ret = iommu_map(domain->domain, iova, phys, size,
drivers/vfio/vfio_iommu_type1.c
1882
vfio_unpin_pages_remote(dma, iova,
drivers/vfio/vfio_iommu_type1.c
1911
iommu_unmap(domain->domain, dma->iova, dma->size);
drivers/vfio/vfio_iommu_type1.c
1916
dma_addr_t iova = dma->iova + pos;
drivers/vfio/vfio_iommu_type1.c
1921
phys = iommu_iova_to_phys(domain->domain, iova);
drivers/vfio/vfio_iommu_type1.c
1929
i = iova + size;
drivers/vfio/vfio_iommu_type1.c
1937
iommu_unmap(domain->domain, iova, size);
drivers/vfio/vfio_iommu_type1.c
1938
vfio_unpin_pages_remote(dma, iova, phys >> PAGE_SHIFT,
drivers/vfio/vfio_iommu_type1.c
199
if (start <= dma->iova + dma->size - 1) {
drivers/vfio/vfio_iommu_type1.c
202
if (start >= dma->iova)
drivers/vfio/vfio_iommu_type1.c
2039
struct list_head *iova = &iommu->iova_list;
drivers/vfio/vfio_iommu_type1.c
2041
if (list_empty(iova))
drivers/vfio/vfio_iommu_type1.c
2045
first = list_first_entry(iova, struct vfio_iova, list);
drivers/vfio/vfio_iommu_type1.c
2046
last = list_last_entry(iova, struct vfio_iova, list);
drivers/vfio/vfio_iommu_type1.c
2069
static int vfio_iommu_aper_resize(struct list_head *iova,
drivers/vfio/vfio_iommu_type1.c
2074
if (list_empty(iova))
drivers/vfio/vfio_iommu_type1.c
2075
return vfio_iommu_iova_insert(iova, start, end);
drivers/vfio/vfio_iommu_type1.c
2078
list_for_each_entry_safe(node, next, iova, list) {
drivers/vfio/vfio_iommu_type1.c
209
if (res && dma_res->iova > end)
drivers/vfio/vfio_iommu_type1.c
2091
list_for_each_entry_safe(node, next, iova, list) {
drivers/vfio/vfio_iommu_type1.c
2130
static int vfio_iommu_resv_exclude(struct list_head *iova,
drivers/vfio/vfio_iommu_type1.c
2145
list_for_each_entry_safe(n, next, iova, list) {
drivers/vfio/vfio_iommu_type1.c
2172
if (list_empty(iova))
drivers/vfio/vfio_iommu_type1.c
2188
static void vfio_iommu_iova_free(struct list_head *iova)
drivers/vfio/vfio_iommu_type1.c
2192
list_for_each_entry_safe(n, next, iova, list) {
drivers/vfio/vfio_iommu_type1.c
2201
struct list_head *iova = &iommu->iova_list;
drivers/vfio/vfio_iommu_type1.c
2205
list_for_each_entry(n, iova, list) {
drivers/vfio/vfio_iommu_type1.c
2221
struct list_head *iova = &iommu->iova_list;
drivers/vfio/vfio_iommu_type1.c
2223
vfio_iommu_iova_free(iova);
drivers/vfio/vfio_iommu_type1.c
2225
list_splice_tail(iova_copy, iova);
drivers/vfio/vfio_iommu_type1.c
225
if (new->iova <= dma->iova)
drivers/vfio/vfio_iommu_type1.c
275
bitmap_set(dma->bitmap, (vpfn->iova - dma->iova) >> pgshift, 1);
drivers/vfio/vfio_iommu_type1.c
2771
struct vfio_iova *iova;
drivers/vfio/vfio_iommu_type1.c
2775
list_for_each_entry(iova, &iommu->iova_list, list)
drivers/vfio/vfio_iommu_type1.c
2794
list_for_each_entry(iova, &iommu->iova_list, list) {
drivers/vfio/vfio_iommu_type1.c
2795
cap_iovas->iova_ranges[i].start = iova->start;
drivers/vfio/vfio_iommu_type1.c
2796
cap_iovas->iova_ranges[i].end = iova->end;
drivers/vfio/vfio_iommu_type1.c
3017
dma_addr_t iova, iova_end;
drivers/vfio/vfio_iommu_type1.c
3026
iova = range.iova;
drivers/vfio/vfio_iommu_type1.c
3029
if (iova != range.iova || size != range.size)
drivers/vfio/vfio_iommu_type1.c
3035
if (check_add_overflow(iova, size - 1, &iova_end))
drivers/vfio/vfio_iommu_type1.c
3057
if (iova & (iommu_pgsize - 1)) {
drivers/vfio/vfio_iommu_type1.c
3068
iommu, iova, iova_end,
drivers/vfio/vfio_iommu_type1.c
3168
offset = user_iova - dma->iova;
drivers/vfio/vfio_iommu_type1.c
344
if (iova_end <= vpfn->iova)
drivers/vfio/vfio_iommu_type1.c
346
else if (iova_start > vpfn->iova)
drivers/vfio/vfio_iommu_type1.c
354
static inline struct vfio_pfn *vfio_find_vpfn(struct vfio_dma *dma, dma_addr_t iova)
drivers/vfio/vfio_iommu_type1.c
356
return vfio_find_vpfn_range(dma, iova, iova + 1);
drivers/vfio/vfio_iommu_type1.c
370
if (new->iova < vpfn->iova)
drivers/vfio/vfio_iommu_type1.c
385
static int vfio_add_to_pfn_list(struct vfio_dma *dma, dma_addr_t iova,
drivers/vfio/vfio_iommu_type1.c
394
vpfn->iova = iova;
drivers/vfio/vfio_iommu_type1.c
409
unsigned long iova)
drivers/vfio/vfio_iommu_type1.c
411
struct vfio_pfn *vpfn = vfio_find_vpfn(dma, iova);
drivers/vfio/vfio_iommu_type1.c
655
if (vpfn->iova < iova_start)
drivers/vfio/vfio_iommu_type1.c
662
if (vpfn->iova >= iova_end)
drivers/vfio/vfio_iommu_type1.c
683
dma_addr_t iova = vaddr - dma->vaddr + dma->iova;
drivers/vfio/vfio_iommu_type1.c
729
iova += (PAGE_SIZE * ret);
drivers/vfio/vfio_iommu_type1.c
759
acct_pages -= vpfn_pages(dma, iova, nr_pages);
drivers/vfio/vfio_iommu_type1.c
781
iova += PAGE_SIZE * nr_pages;
drivers/vfio/vfio_iommu_type1.c
817
static long vfio_unpin_pages_remote(struct vfio_dma *dma, dma_addr_t iova,
drivers/vfio/vfio_iommu_type1.c
821
long unlocked = 0, locked = vpfn_pages(dma, iova, npage);
drivers/vfio/vfio_iommu_type1.c
876
static int vfio_unpin_page_external(struct vfio_dma *dma, dma_addr_t iova,
drivers/vfio/vfio_iommu_type1.c
880
struct vfio_pfn *vpfn = vfio_find_vpfn(dma, iova);
drivers/vfio/vfio_iommu_type1.c
89
dma_addr_t iova; /* Device address */
drivers/vfio/vfio_iommu_type1.c
942
dma_addr_t iova;
drivers/vfio/vfio_iommu_type1.c
945
iova = user_iova + PAGE_SIZE * i;
drivers/vfio/vfio_iommu_type1.c
946
dma = vfio_find_dma(iommu, iova, PAGE_SIZE);
drivers/vfio/vfio_iommu_type1.c
957
vpfn = vfio_iova_get_vfio_pfn(dma, iova);
drivers/vfio/vfio_iommu_type1.c
963
remote_vaddr = dma->vaddr + (iova - dma->iova);
drivers/vfio/vfio_iommu_type1.c
974
ret = vfio_add_to_pfn_list(dma, iova, phys_pfn);
drivers/vfio/vfio_iommu_type1.c
991
(iova - dma->iova) >> pgshift, 1);
drivers/vfio/vfio_main.c
1129
if (!IS_ALIGNED(range.iova, control.page_size) ||
drivers/vfio/vfio_main.c
1135
if (check_add_overflow(range.iova, range.length, &iova_end) ||
drivers/vfio/vfio_main.c
1141
nodes[i].start = range.iova;
drivers/vfio/vfio_main.c
1142
nodes[i].last = range.iova + range.length - 1;
drivers/vfio/vfio_main.c
1186
unsigned long iova, size_t length,
drivers/vfio/vfio_main.c
1191
return device->log_ops->log_read_and_clear(device, iova, length, iter);
drivers/vfio/vfio_main.c
1222
if (check_add_overflow(report.iova, report.length, &iova_end) ||
drivers/vfio/vfio_main.c
1226
iter = iova_bitmap_alloc(report.iova, report.length,
drivers/vfio/vfio_main.c
1697
int vfio_pin_pages(struct vfio_device *device, dma_addr_t iova,
drivers/vfio/vfio_main.c
1706
return vfio_device_container_pin_pages(device, iova,
drivers/vfio/vfio_main.c
1711
if (iova > ULONG_MAX)
drivers/vfio/vfio_main.c
1720
device->iommufd_access, ALIGN_DOWN(iova, PAGE_SIZE),
drivers/vfio/vfio_main.c
1738
void vfio_unpin_pages(struct vfio_device *device, dma_addr_t iova, int npage)
drivers/vfio/vfio_main.c
1746
vfio_device_container_unpin_pages(device, iova, npage);
drivers/vfio/vfio_main.c
1750
if (WARN_ON(iova > ULONG_MAX))
drivers/vfio/vfio_main.c
1753
ALIGN_DOWN(iova, PAGE_SIZE),
drivers/vfio/vfio_main.c
1777
int vfio_dma_rw(struct vfio_device *device, dma_addr_t iova, void *data,
drivers/vfio/vfio_main.c
1784
return vfio_device_container_dma_rw(device, iova,
drivers/vfio/vfio_main.c
1790
if (iova > ULONG_MAX)
drivers/vfio/vfio_main.c
1798
return iommufd_access_rw(device->iommufd_access, iova, data,
drivers/vhost/vdpa.c
1001
r = vhost_iotlb_add_range_ctx(iotlb, iova, iova + size - 1,
drivers/vhost/vdpa.c
1007
r = ops->dma_map(vdpa, asid, iova, size, pa, perm, opaque);
drivers/vhost/vdpa.c
1012
r = iommu_map(v->domain, iova, pa, size,
drivers/vhost/vdpa.c
1017
vhost_iotlb_del_range(iotlb, iova, iova + size - 1);
drivers/vhost/vdpa.c
1029
u64 iova, u64 size)
drivers/vhost/vdpa.c
1035
vhost_vdpa_iotlb_unmap(v, iotlb, iova, iova + size - 1, asid);
drivers/vhost/vdpa.c
1046
u64 iova, u64 size, u64 uaddr, u32 perm)
drivers/vhost/vdpa.c
1049
u64 offset, map_size, map_iova = iova;
drivers/vhost/vdpa.c
1088
vhost_vdpa_unmap(v, iotlb, iova, map_iova - iova);
drivers/vhost/vdpa.c
1097
u64 iova, u64 size, u64 uaddr, u32 perm)
drivers/vhost/vdpa.c
1105
u64 start = iova;
drivers/vhost/vdpa.c
1117
npages = PFN_UP(size + (iova & ~PAGE_MASK));
drivers/vhost/vdpa.c
1132
iova &= PAGE_MASK;
drivers/vhost/vdpa.c
1160
ret = vhost_vdpa_map(v, iotlb, iova, csize,
drivers/vhost/vdpa.c
1178
iova += csize;
drivers/vhost/vdpa.c
1190
ret = vhost_vdpa_map(v, iotlb, iova, PFN_PHYS(last_pfn - map_pfn + 1),
drivers/vhost/vdpa.c
1226
if (msg->iova < v->range.first || !msg->size ||
drivers/vhost/vdpa.c
1227
msg->iova > U64_MAX - msg->size + 1 ||
drivers/vhost/vdpa.c
1228
msg->iova + msg->size - 1 > v->range.last)
drivers/vhost/vdpa.c
1231
if (vhost_iotlb_itree_first(iotlb, msg->iova,
drivers/vhost/vdpa.c
1232
msg->iova + msg->size - 1))
drivers/vhost/vdpa.c
1236
return vhost_vdpa_va_map(v, iotlb, msg->iova, msg->size,
drivers/vhost/vdpa.c
1239
return vhost_vdpa_pa_map(v, iotlb, msg->iova, msg->size, msg->uaddr,
drivers/vhost/vdpa.c
1288
vhost_vdpa_unmap(v, iotlb, msg->iova, msg->size);
drivers/vhost/vdpa.c
993
u64 iova, u64 size, u64 pa, u32 perm, void *opaque)
drivers/vhost/vhost.c
1597
if (msg->iova <= vq_msg->iova &&
drivers/vhost/vhost.c
1598
msg->iova + msg->size - 1 >= vq_msg->iova &&
drivers/vhost/vhost.c
1647
if (vhost_iotlb_add_range(dev->iotlb, msg->iova,
drivers/vhost/vhost.c
1648
msg->iova + msg->size - 1,
drivers/vhost/vhost.c
1661
vhost_iotlb_del_range(dev->iotlb, msg->iova,
drivers/vhost/vhost.c
1662
msg->iova + msg->size - 1);
drivers/vhost/vhost.c
1822
static int vhost_iotlb_miss(struct vhost_virtqueue *vq, u64 iova, int access)
drivers/vhost/vhost.c
1841
msg->iova = iova;
fs/smb/smbdirect/mr.c
393
v1->offset = cpu_to_le64(mr->mr->iova);
include/linux/generic_pt/iommu.h
113
int (*map_range)(struct pt_iommu *iommu_table, dma_addr_t iova,
include/linux/generic_pt/iommu.h
136
size_t (*unmap_range)(struct pt_iommu *iommu_table, dma_addr_t iova,
include/linux/generic_pt/iommu.h
150
int (*set_dirty)(struct pt_iommu *iommu_table, dma_addr_t iova);
include/linux/generic_pt/iommu.h
253
dma_addr_t iova); \
include/linux/generic_pt/iommu.h
255
struct iommu_domain *domain, unsigned long iova, size_t size, \
include/linux/io-pgtable.h
215
int (*map_pages)(struct io_pgtable_ops *ops, unsigned long iova,
include/linux/io-pgtable.h
218
size_t (*unmap_pages)(struct io_pgtable_ops *ops, unsigned long iova,
include/linux/io-pgtable.h
222
unsigned long iova);
include/linux/io-pgtable.h
223
int (*pgtable_walk)(struct io_pgtable_ops *ops, unsigned long iova, void *wd);
include/linux/io-pgtable.h
225
unsigned long iova, size_t size,
include/linux/io-pgtable.h
285
io_pgtable_tlb_flush_walk(struct io_pgtable *iop, unsigned long iova,
include/linux/io-pgtable.h
289
iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie);
include/linux/io-pgtable.h
294
struct iommu_iotlb_gather * gather, unsigned long iova,
include/linux/io-pgtable.h
298
iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie);
include/linux/io-pgtable.h
41
void (*tlb_flush_walk)(unsigned long iova, size_t size, size_t granule,
include/linux/io-pgtable.h
44
unsigned long iova, size_t granule, void *cookie);
include/linux/iommu.h
1004
unsigned long iova, int flags);
include/linux/iommu.h
1035
unsigned long iova, size_t size)
include/linux/iommu.h
1037
unsigned long start = iova, end = start + size - 1;
include/linux/iommu.h
1055
unsigned long iova, size_t size)
include/linux/iommu.h
1057
unsigned long end = iova + size - 1;
include/linux/iommu.h
1059
if (gather->start > iova)
include/linux/iommu.h
1060
gather->start = iova;
include/linux/iommu.h
1078
unsigned long iova, size_t size)
include/linux/iommu.h
1086
iommu_iotlb_gather_is_disjoint(gather, iova, size))
include/linux/iommu.h
1090
iommu_iotlb_gather_add_range(gather, iova, size);
include/linux/iommu.h
1110
unsigned long iova,
include/linux/iommu.h
1114
iova_bitmap_set(dirty->bitmap, iova, length);
include/linux/iommu.h
1117
iommu_iotlb_gather_add_range(dirty->gather, iova, length);
include/linux/iommu.h
1275
static inline int iommu_map(struct iommu_domain *domain, unsigned long iova,
include/linux/iommu.h
1282
unsigned long iova, size_t size)
include/linux/iommu.h
1288
unsigned long iova, int gfp_order,
include/linux/iommu.h
1295
unsigned long iova, struct scatterlist *sg,
include/linux/iommu.h
1310
static inline phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova)
include/linux/iommu.h
1437
unsigned long iova, size_t size)
include/linux/iommu.h
1453
unsigned long iova,
include/linux/iommu.h
1593
unsigned long iova, struct sg_table *sgt, int prot)
include/linux/iommu.h
1595
return iommu_map_sg(domain, iova, sgt->sgl, sgt->orig_nents, prot,
include/linux/iommu.h
418
unsigned long iova, size_t size,
include/linux/iommu.h
791
int (*map_pages)(struct iommu_domain *domain, unsigned long iova,
include/linux/iommu.h
794
size_t (*unmap_pages)(struct iommu_domain *domain, unsigned long iova,
include/linux/iommu.h
799
int (*iotlb_sync_map)(struct iommu_domain *domain, unsigned long iova,
include/linux/iommu.h
807
dma_addr_t iova);
include/linux/iommu.h
947
extern int iommu_map(struct iommu_domain *domain, unsigned long iova,
include/linux/iommu.h
949
int iommu_map_nosync(struct iommu_domain *domain, unsigned long iova,
include/linux/iommu.h
951
int iommu_sync_map(struct iommu_domain *domain, unsigned long iova,
include/linux/iommu.h
953
extern size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova,
include/linux/iommu.h
956
unsigned long iova, size_t size,
include/linux/iommu.h
958
extern ssize_t iommu_map_sg(struct iommu_domain *domain, unsigned long iova,
include/linux/iommu.h
961
extern phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova);
include/linux/iommufd.h
206
int iommufd_access_pin_pages(struct iommufd_access *access, unsigned long iova,
include/linux/iommufd.h
210
unsigned long iova, unsigned long length);
include/linux/iommufd.h
211
int iommufd_access_rw(struct iommufd_access *access, unsigned long iova,
include/linux/iommufd.h
227
unsigned long iova,
include/linux/iommufd.h
236
unsigned long iova,
include/linux/iommufd.h
242
unsigned long iova, void *data, size_t len,
include/linux/iommufd.h
76
void (*unmap)(void *data, unsigned long iova, unsigned long length);
include/linux/iova.h
103
struct iova *find_iova(struct iova_domain *iovad, unsigned long pfn);
include/linux/iova.h
119
static inline void __free_iova(struct iova_domain *iovad, struct iova *iova)
include/linux/iova.h
123
static inline struct iova *alloc_iova(struct iova_domain *iovad,
include/linux/iova.h
145
static inline struct iova *reserve_iova(struct iova_domain *iovad,
include/linux/iova.h
158
static inline struct iova *find_iova(struct iova_domain *iovad,
include/linux/iova.h
37
struct iova anchor; /* rbtree lookup anchor */
include/linux/iova.h
43
static inline unsigned long iova_size(struct iova *iova)
include/linux/iova.h
45
return iova->pfn_hi - iova->pfn_lo + 1;
include/linux/iova.h
58
static inline size_t iova_offset(struct iova_domain *iovad, dma_addr_t iova)
include/linux/iova.h
60
return iova & iova_mask(iovad);
include/linux/iova.h
73
static inline dma_addr_t iova_dma_addr(struct iova_domain *iovad, struct iova *iova)
include/linux/iova.h
75
return (dma_addr_t)iova->pfn_lo << iova_shift(iovad);
include/linux/iova.h
78
static inline unsigned long iova_pfn(struct iova_domain *iovad, dma_addr_t iova)
include/linux/iova.h
80
return iova >> iova_shift(iovad);
include/linux/iova.h
90
void __free_iova(struct iova_domain *iovad, struct iova *iova);
include/linux/iova.h
91
struct iova *alloc_iova(struct iova_domain *iovad, unsigned long size,
include/linux/iova.h
98
struct iova *reserve_iova(struct iova_domain *iovad, unsigned long pfn_lo,
include/linux/iova_bitmap.h
15
unsigned long iova, size_t length,
include/linux/iova_bitmap.h
19
struct iova_bitmap *iova_bitmap_alloc(unsigned long iova, size_t length,
include/linux/iova_bitmap.h
26
unsigned long iova, size_t length);
include/linux/iova_bitmap.h
28
static inline struct iova_bitmap *iova_bitmap_alloc(unsigned long iova,
include/linux/iova_bitmap.h
47
unsigned long iova, size_t length)
include/linux/mlx4/device.h
1125
int mlx4_mr_alloc(struct mlx4_dev *dev, u32 pd, u64 iova, u64 size, u32 access,
include/linux/mlx4/device.h
1539
u64 iova, u64 size, int npages,
include/linux/mlx4/device.h
690
u64 iova;
include/linux/soc/apple/rtkit.h
32
dma_addr_t iova;
include/linux/soc/qcom/geni-se.h
520
void geni_se_tx_init_dma(struct geni_se *se, dma_addr_t iova, size_t len);
include/linux/soc/qcom/geni-se.h
523
dma_addr_t *iova);
include/linux/soc/qcom/geni-se.h
525
void geni_se_rx_init_dma(struct geni_se *se, dma_addr_t iova, size_t len);
include/linux/soc/qcom/geni-se.h
528
dma_addr_t *iova);
include/linux/soc/qcom/geni-se.h
530
void geni_se_tx_dma_unprep(struct geni_se *se, dma_addr_t iova, size_t len);
include/linux/soc/qcom/geni-se.h
532
void geni_se_rx_dma_unprep(struct geni_se *se, dma_addr_t iova, size_t len);
include/linux/vdpa.h
434
u64 iova, u64 size, u64 pa, u32 perm, void *opaque);
include/linux/vdpa.h
436
u64 iova, u64 size);
include/linux/vfio.h
143
void (*dma_unmap)(struct vfio_device *vdev, u64 iova, u64 length);
include/linux/vfio.h
254
unsigned long iova, unsigned long length,
include/linux/vfio.h
384
int vfio_pin_pages(struct vfio_device *device, dma_addr_t iova,
include/linux/vfio.h
386
void vfio_unpin_pages(struct vfio_device *device, dma_addr_t iova, int npage);
include/linux/vfio.h
387
int vfio_dma_rw(struct vfio_device *device, dma_addr_t iova,
include/rdma/ib_umem.h
18
u64 iova;
include/rdma/ib_umem.h
67
return (size_t)((ALIGN(umem->iova + umem->length, pgsz) -
include/rdma/ib_umem.h
68
ALIGN_DOWN(umem->iova, pgsz))) /
include/rdma/ib_verbs.h
1988
u64 iova;
include/rdma/ib_verbs.h
4751
mr->iova = 0;
include/rdma/rdmavt_mr.h
34
u64 iova; /* IB start address of this region */
include/rdma/rw.h
41
} iova;
include/trace/events/iommu.h
105
TP_PROTO(unsigned long iova, size_t size, size_t unmapped_size),
include/trace/events/iommu.h
107
TP_ARGS(iova, size, unmapped_size),
include/trace/events/iommu.h
110
__field(u64, iova)
include/trace/events/iommu.h
116
__entry->iova = iova;
include/trace/events/iommu.h
122
__entry->iova, __entry->iova + __entry->size,
include/trace/events/iommu.h
129
TP_PROTO(struct device *dev, unsigned long iova, int flags),
include/trace/events/iommu.h
131
TP_ARGS(dev, iova, flags),
include/trace/events/iommu.h
136
__field(u64, iova)
include/trace/events/iommu.h
143
__entry->iova = iova;
include/trace/events/iommu.h
149
__entry->iova, __entry->flags
include/trace/events/iommu.h
155
TP_PROTO(struct device *dev, unsigned long iova, int flags),
include/trace/events/iommu.h
157
TP_ARGS(dev, iova, flags)
include/trace/events/iommu.h
81
TP_PROTO(unsigned long iova, phys_addr_t paddr, size_t size),
include/trace/events/iommu.h
83
TP_ARGS(iova, paddr, size),
include/trace/events/iommu.h
86
__field(u64, iova)
include/trace/events/iommu.h
92
__entry->iova = iova;
include/trace/events/iommu.h
98
__entry->iova, __entry->iova + __entry->size, __entry->paddr,
include/uapi/drm/msm_drm.h
278
__u64 iova; /* cmdstream address (for VM_BIND contexts) */
include/uapi/drm/msm_drm.h
368
__u64 iova;
include/uapi/drm/panfrost_drm.h
410
__u64 iova;
include/uapi/linux/fpga-dfl.h
133
__u64 iova; /* IO virtual address */
include/uapi/linux/fpga-dfl.h
149
__u64 iova; /* IO virtual address */
include/uapi/linux/iommufd.h
218
__aligned_u64 iova;
include/uapi/linux/iommufd.h
246
__aligned_u64 iova;
include/uapi/linux/iommufd.h
296
__aligned_u64 iova;
include/uapi/linux/iommufd.h
841
__aligned_u64 iova;
include/uapi/linux/vduse.h
248
__u64 iova;
include/uapi/linux/vduse.h
396
struct vduse_iova_range iova;
include/uapi/linux/vfio.h
1419
__aligned_u64 iova;
include/uapi/linux/vfio.h
1458
__aligned_u64 iova;
include/uapi/linux/vfio.h
1640
__u64 iova; /* IO virtual address */
include/uapi/linux/vfio.h
1686
__u64 iova; /* IO virtual address */
include/uapi/linux/vfio.h
1744
__u64 iova; /* IO virtual address */
include/uapi/linux/vhost_types.h
68
__u64 iova;
include/uapi/rdma/rdma_user_rxe.h
165
__aligned_u64 iova;
net/smc/smc_core.c
2224
buf_desc->mr[link->link_idx]->iova =
net/sunrpc/xprtrdma/frwr_ops.c
394
ibmr->iova &= 0x00000000ffffffff;
net/sunrpc/xprtrdma/frwr_ops.c
395
ibmr->iova |= ((u64)be32_to_cpu(xid)) << 32;
net/sunrpc/xprtrdma/frwr_ops.c
408
mr->mr_offset = ibmr->iova;
net/sunrpc/xprtrdma/frwr_ops.c
787
mr->mr_offset = ibmr->iova;
samples/vfio-mdev/mtty.c
1297
unsigned long iova, unsigned long length,
sound/usb/qcom/qc_audio_offload.c
1090
mem_info->iova = PREPEND_SID_TO_IOVA(xfer_buf_dma_sysdev, uaudio_qdev->data->sid);
sound/usb/qcom/qc_audio_offload.c
1128
unsigned long iova;
sound/usb/qcom/qc_audio_offload.c
1166
iova = uaudio_iommu_map_pa(MEM_XFER_RING, dma_coherent, tr_pa,
sound/usb/qcom/qc_audio_offload.c
1168
if (!iova) {
sound/usb/qcom/qc_audio_offload.c
1173
mem_info->iova = PREPEND_SID_TO_IOVA(iova, uaudio_qdev->data->sid);
sound/usb/qcom/qc_audio_offload.c
1202
unsigned long iova;
sound/usb/qcom/qc_audio_offload.c
1235
iova = uaudio_iommu_map_pa(MEM_EVENT_RING, dma_coherent, er_pa,
sound/usb/qcom/qc_audio_offload.c
1237
if (!iova) {
sound/usb/qcom/qc_audio_offload.c
1242
mem_info->iova = PREPEND_SID_TO_IOVA(iova, uaudio_qdev->data->sid);
sound/usb/qcom/qc_audio_offload.c
1482
IOVA_MASK(resp->xhci_mem_info.tr_data.iova);
sound/usb/qcom/qc_audio_offload.c
1485
IOVA_MASK(resp->xhci_mem_info.tr_sync.iova);
sound/usb/qcom/qc_audio_offload.c
1488
IOVA_MASK(resp->xhci_mem_info.xfer_buff.iova);
sound/usb/qcom/qc_audio_offload.c
1520
IOVA_MASK(resp->xhci_mem_info.tr_sync.iova),
sound/usb/qcom/qc_audio_offload.c
1526
uaudio_iommu_unmap(MEM_XFER_RING, IOVA_MASK(resp->xhci_mem_info.tr_data.iova),
sound/usb/qcom/qc_audio_offload.c
399
unsigned long iova = 0;
sound/usb/qcom/qc_audio_offload.c
414
iova = info->start_iova;
sound/usb/qcom/qc_audio_offload.c
424
iova = new_info->start_iova;
sound/usb/qcom/qc_audio_offload.c
443
iova = 0;
sound/usb/qcom/qc_audio_offload.c
447
iova = *curr_iova;
sound/usb/qcom/qc_audio_offload.c
456
return iova;
sound/usb/qcom/qc_audio_offload.c
459
static void uaudio_put_iova(unsigned long iova, size_t size, struct list_head
sound/usb/qcom/qc_audio_offload.c
467
if (info->start_iova == iova) {
sound/usb/qcom/qc_audio_offload.c
502
static void uaudio_iommu_unmap(enum mem_type mtype, unsigned long iova,
sound/usb/qcom/qc_audio_offload.c
508
if (!iova || !iova_size)
sound/usb/qcom/qc_audio_offload.c
520
uaudio_put_iova(iova, iova_size, &uaudio_qdev->xfer_ring_list,
sound/usb/qcom/qc_audio_offload.c
524
uaudio_put_iova(iova, iova_size, &uaudio_qdev->xfer_buf_list,
sound/usb/qcom/qc_audio_offload.c
534
umap_size = iommu_unmap(uaudio_qdev->data->domain, iova, mapped_iova_size);
sound/usb/qcom/qc_audio_offload.c
538
umap_size, iova, mapped_iova_size);
sound/usb/qcom/qc_audio_offload.c
565
unsigned long iova = 0;
sound/usb/qcom/qc_audio_offload.c
57
#define PREPEND_SID_TO_IOVA(iova, sid) ((u64)(((u64)(iova)) | \
sound/usb/qcom/qc_audio_offload.c
572
iova = IOVA_BASE;
sound/usb/qcom/qc_audio_offload.c
578
iova = uaudio_get_iova(&uaudio_qdev->curr_xfer_ring_iova,
sound/usb/qcom/qc_audio_offload.c
586
if (!iova)
sound/usb/qcom/qc_audio_offload.c
59
#define IOVA_MASK(iova) (((u64)(iova)) & 0xFFFFFFFF)
sound/usb/qcom/qc_audio_offload.c
590
return iova;
sound/usb/qcom/qc_audio_offload.c
592
ret = iommu_map(uaudio_qdev->data->domain, iova, pa, size, prot,
sound/usb/qcom/qc_audio_offload.c
597
size, iova, ret);
sound/usb/qcom/qc_audio_offload.c
599
uaudio_put_iova(iova, size,
sound/usb/qcom/qc_audio_offload.c
605
return iova;
sound/usb/qcom/qc_audio_offload.c
612
unsigned long iova = 0;
sound/usb/qcom/qc_audio_offload.c
626
iova = uaudio_get_iova(&uaudio_qdev->curr_xfer_buf_iova,
sound/usb/qcom/qc_audio_offload.c
629
if (!iova)
sound/usb/qcom/qc_audio_offload.c
632
iova_sg = iova;
sound/usb/qcom/qc_audio_offload.c
639
uaudio_iommu_unmap(MEM_XFER_BUF, iova, size, total_len);
sound/usb/qcom/qc_audio_offload.c
640
iova = 0;
sound/usb/qcom/qc_audio_offload.c
649
uaudio_iommu_unmap(MEM_XFER_BUF, iova, size, total_len);
sound/usb/qcom/qc_audio_offload.c
650
iova = 0;
sound/usb/qcom/qc_audio_offload.c
653
return iova;
sound/usb/qcom/usb_audio_qmi_v01.c
17
.offset = offsetof(struct mem_info_v01, iova),
sound/usb/qcom/usb_audio_qmi_v01.h
17
u64 iova; /* mapped into sysdev */
tools/testing/selftests/iommu/iommufd.c
1007
test_err_ioctl_ioas_map(ENOSPC, buffer, map_len, &iova);
tools/testing/selftests/iommu/iommufd.c
1157
.access_pages = { .iova = self->base_iova + PAGE_SIZE,
tools/testing/selftests/iommu/iommufd.c
1191
.access_pages = { .iova = MOCK_APERTURE_START,
tools/testing/selftests/iommu/iommufd.c
1198
.check_map = { .iova = MOCK_APERTURE_START,
tools/testing/selftests/iommu/iommufd.c
1263
.access_pages = { .iova = MOCK_APERTURE_START,
tools/testing/selftests/iommu/iommufd.c
1285
unsigned int access_id, uint64_t iova,
tools/testing/selftests/iommu/iommufd.c
130
TEST_LENGTH(iommu_ioas_map, IOMMU_IOAS_MAP, iova);
tools/testing/selftests/iommu/iommufd.c
1302
for (access_cmd.access_rw.iova = iova + PAGE_SIZE - 50;
tools/testing/selftests/iommu/iommufd.c
1303
access_cmd.access_rw.iova < iova + PAGE_SIZE + 50;
tools/testing/selftests/iommu/iommufd.c
1304
access_cmd.access_rw.iova++) {
tools/testing/selftests/iommu/iommufd.c
1314
memcmp(buffer + (access_cmd.access_rw.iova -
tools/testing/selftests/iommu/iommufd.c
1315
iova),
tools/testing/selftests/iommu/iommufd.c
1327
memcmp(buffer + (access_cmd.access_rw.iova -
tools/testing/selftests/iommu/iommufd.c
1328
iova),
tools/testing/selftests/iommu/iommufd.c
1336
access_cmd.access_rw.iova = iova;
tools/testing/selftests/iommu/iommufd.c
1349
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
135
TEST_LENGTH(iommu_ioas_map_file, IOMMU_IOAS_MAP_FILE, iova);
tools/testing/selftests/iommu/iommufd.c
1352
test_ioctl_ioas_map(buffer, BUFFER_SIZE, &iova);
tools/testing/selftests/iommu/iommufd.c
1353
check_access_rw(_metadata, self->fd, access_id, iova, 0);
tools/testing/selftests/iommu/iommufd.c
1354
check_access_rw(_metadata, self->fd, access_id, iova,
tools/testing/selftests/iommu/iommufd.c
1356
test_ioctl_ioas_unmap(iova, BUFFER_SIZE);
tools/testing/selftests/iommu/iommufd.c
1363
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
1368
iova = self->base_iova + MOCK_PAGE_SIZE;
tools/testing/selftests/iommu/iommufd.c
1369
test_ioctl_ioas_map_fixed(buffer, BUFFER_SIZE, iova);
tools/testing/selftests/iommu/iommufd.c
1370
check_access_rw(_metadata, self->fd, access_id, iova, 0);
tools/testing/selftests/iommu/iommufd.c
1371
test_ioctl_ioas_unmap(iova, BUFFER_SIZE);
tools/testing/selftests/iommu/iommufd.c
1429
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
1437
if (read(pipefds[0], &iova, 1) != 1)
tools/testing/selftests/iommu/iommufd.c
1489
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
1493
test_err_ioctl_ioas_map(EINVAL, buffer, length, &iova);
tools/testing/selftests/iommu/iommufd.c
1495
test_ioctl_ioas_map(buffer, length, &iova);
tools/testing/selftests/iommu/iommufd.c
1496
test_ioctl_ioas_unmap(iova, length);
tools/testing/selftests/iommu/iommufd.c
1556
uint64_t iova;
tools/testing/selftests/iommu/iommufd.c
1569
for (iova = MOCK_APERTURE_START - PAGE_SIZE; iova <= last_iova;
tools/testing/selftests/iommu/iommufd.c
1570
iova += 511) {
tools/testing/selftests/iommu/iommufd.c
1571
copy_cmd.src_iova = iova;
tools/testing/selftests/iommu/iommufd.c
1572
if (iova < MOCK_APERTURE_START ||
tools/testing/selftests/iommu/iommufd.c
1573
iova + copy_cmd.length - 1 > last_iova) {
tools/testing/selftests/iommu/iommufd.c
1590
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
1594
test_err_ioctl_ioas_map_file(EINVAL, dfd, 0, 0, &iova);
tools/testing/selftests/iommu/iommufd.c
1595
test_err_ioctl_ioas_map_file(EINVAL, dfd, buf_size, buf_size, &iova);
tools/testing/selftests/iommu/iommufd.c
1596
test_err_ioctl_ioas_map_file(EINVAL, dfd, 0, buf_size + 1, &iova);
tools/testing/selftests/iommu/iommufd.c
1597
test_ioctl_ioas_map_file(dfd, 0, buf_size, &iova);
tools/testing/selftests/iommu/iommufd.c
1606
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
1611
test_ioctl_ioas_map_file(dfd, 0, buf_size, &iova);
tools/testing/selftests/iommu/iommufd.c
1624
test_ioctl_ioas_unmap(iova, buf_size);
tools/testing/selftests/iommu/iommufd.c
1625
test_ioctl_ioas_map_fixed_file(dfd, 0, buf_size, iova);
tools/testing/selftests/iommu/iommufd.c
1734
.check_map = { .iova = _iova, \
tools/testing/selftests/iommu/iommufd.c
1759
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
1762
test_ioctl_ioas_map(buffer, PAGE_SIZE, &iova);
tools/testing/selftests/iommu/iommufd.c
1763
check_mock_iova(buffer, iova, PAGE_SIZE);
tools/testing/selftests/iommu/iommufd.c
1771
test_err_ioctl_ioas_map(EFAULT, buf, buf_size, &iova);
tools/testing/selftests/iommu/iommufd.c
1775
test_err_ioctl_ioas_map(EFAULT, buf, buf_size, &iova);
tools/testing/selftests/iommu/iommufd.c
1785
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
1790
test_ioctl_ioas_map_file(mfd, 0, PAGE_SIZE, &iova);
tools/testing/selftests/iommu/iommufd.c
1791
check_mock_iova(mfd_buffer, iova, PAGE_SIZE);
tools/testing/selftests/iommu/iommufd.c
1796
test_err_ioctl_ioas_map_file(EINVAL, mfd_tmp, 0, buf_size + 1, &iova);
tools/testing/selftests/iommu/iommufd.c
1799
test_err_ioctl_ioas_map_file(EINVAL, mfd_tmp, 0, buf_size, &iova);
tools/testing/selftests/iommu/iommufd.c
1815
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
1832
&iova, IOMMU_IOAS_MAP_READABLE));
tools/testing/selftests/iommu/iommufd.c
1833
check_mock_iova(buf, iova, PAGE_SIZE);
tools/testing/selftests/iommu/iommufd.c
1835
check_mock_iova(buf, iova, PAGE_SIZE);
tools/testing/selftests/iommu/iommufd.c
1870
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
1874
&iova);
tools/testing/selftests/iommu/iommufd.c
1876
test_ioctl_ioas_map(buf + start, length, &iova);
tools/testing/selftests/iommu/iommufd.c
1878
check_mock_iova(buf + start, iova, length);
tools/testing/selftests/iommu/iommufd.c
1884
test_ioctl_ioas_unmap(iova, length);
tools/testing/selftests/iommu/iommufd.c
1926
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
1930
&iova);
tools/testing/selftests/iommu/iommufd.c
1932
test_ioctl_ioas_map(buf + start, length, &iova);
tools/testing/selftests/iommu/iommufd.c
1940
check_mock_iova(buf + start, iova, length);
tools/testing/selftests/iommu/iommufd.c
1949
test_ioctl_ioas_unmap(iova, length);
tools/testing/selftests/iommu/iommufd.c
1977
.iova = MOCK_APERTURE_START,
tools/testing/selftests/iommu/iommufd.c
1994
access_cmd.access_pages.iova = copy_cmd.src_iova;
tools/testing/selftests/iommu/iommufd.c
2018
access_cmd.access_pages.iova = copy_cmd.src_iova;
tools/testing/selftests/iommu/iommufd.c
2437
.iova = MOCK_APERTURE_START,
tools/testing/selftests/iommu/iommufd.c
2455
.iova = MOCK_APERTURE_START,
tools/testing/selftests/iommu/iommufd.c
2726
.iova = MOCK_APERTURE_START,
tools/testing/selftests/iommu/iommufd.c
2731
.iova = MOCK_APERTURE_START,
tools/testing/selftests/iommu/iommufd.c
2748
unmap_cmd.iova = 0;
tools/testing/selftests/iommu/iommufd.c
2755
map_cmd.iova = pages_iova[i] =
tools/testing/selftests/iommu/iommufd.c
2766
unmap_cmd.iova = pages_iova[i];
tools/testing/selftests/iommu/iommufd.c
2778
.iova = MOCK_APERTURE_START,
tools/testing/selftests/iommu/iommufd.c
2802
unmap_cmd.iova = pages_iova[i];
tools/testing/selftests/iommu/iommufd.c
295
__u64 iova;
tools/testing/selftests/iommu/iommufd.c
301
test_ioctl_ioas_map(buffer, PAGE_SIZE, &iova);
tools/testing/selftests/iommu/iommufd.c
303
test_ioctl_ioas_unmap(iova, PAGE_SIZE);
tools/testing/selftests/iommu/iommufd.c
306
test_ioctl_ioas_map_file(mfd, 0, PAGE_SIZE, &iova);
tools/testing/selftests/iommu/iommufd.c
3239
__u64 iova = MOCK_APERTURE_START, iova2;
tools/testing/selftests/iommu/iommufd.c
3248
IOMMU_HW_QUEUE_TYPE_DEFAULT, 0, iova, PAGE_SIZE,
tools/testing/selftests/iommu/iommufd.c
3252
0, iova, 0, &hw_queue_id[0]);
tools/testing/selftests/iommu/iommufd.c
3258
0, iova, PAGE_SIZE, &hw_queue_id[0]);
tools/testing/selftests/iommu/iommufd.c
3261
test_ioctl_ioas_map(buffer, PAGE_SIZE, &iova);
tools/testing/selftests/iommu/iommufd.c
3266
iova, PAGE_SIZE, &hw_queue_id[0]);
tools/testing/selftests/iommu/iommufd.c
3268
IOMMU_TEST_HW_QUEUE_MAX, iova, PAGE_SIZE,
tools/testing/selftests/iommu/iommufd.c
3273
iova, PAGE_SIZE, &hw_queue_id[0]);
tools/testing/selftests/iommu/iommufd.c
3276
0, iova, PAGE_SIZE, &hw_queue_id[0]);
tools/testing/selftests/iommu/iommufd.c
3278
test_err_ioctl_ioas_unmap(EBUSY, iova, PAGE_SIZE);
tools/testing/selftests/iommu/iommufd.c
3284
iova + PAGE_SIZE / 2, PAGE_SIZE / 2,
tools/testing/selftests/iommu/iommufd.c
3293
test_ioctl_ioas_unmap(iova, PAGE_SIZE);
tools/testing/selftests/iommu/iommufd.c
993
__u64 iova;
tools/testing/selftests/iommu/iommufd_fail_nth.c
243
__u64 iova;
tools/testing/selftests/iommu/iommufd_fail_nth.c
279
if (_test_ioctl_ioas_map(self->fd, ioas_id, buffer, BUFFER_SIZE, &iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
291
.src_iova = iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
299
if (_test_ioctl_ioas_unmap(self->fd, ioas_id, iova, BUFFER_SIZE,
tools/testing/selftests/iommu/iommufd_fail_nth.c
303
_test_ioctl_ioas_unmap(self->fd, ioas_id, iova, BUFFER_SIZE, NULL);
tools/testing/selftests/iommu/iommufd_fail_nth.c
313
__u64 iova;
tools/testing/selftests/iommu/iommufd_fail_nth.c
330
if (_test_ioctl_ioas_map(self->fd, ioas_id, buffer, 262144, &iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
349
__u64 iova;
tools/testing/selftests/iommu/iommufd_fail_nth.c
366
if (_test_ioctl_ioas_map_file(self->fd, ioas_id, mfd, 0, 262144, &iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
386
__u64 iova;
tools/testing/selftests/iommu/iommufd_fail_nth.c
407
if (_test_ioctl_ioas_map(self->fd, ioas_id, buffer, 262144, &iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
431
__u64 iova;
tools/testing/selftests/iommu/iommufd_fail_nth.c
443
if (_test_ioctl_ioas_map(self->fd, ioas_id, buffer, 262144, &iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
458
.access_rw = { .iova = iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
489
.access_rw = { .iova = iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
510
__u64 iova;
tools/testing/selftests/iommu/iommufd_fail_nth.c
522
if (_test_ioctl_ioas_map(self->fd, ioas_id, buffer, BUFFER_SIZE, &iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
538
.access_pages = { .iova = iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
566
__u64 iova;
tools/testing/selftests/iommu/iommufd_fail_nth.c
581
if (_test_ioctl_ioas_map(self->fd, ioas_id, buffer, BUFFER_SIZE, &iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
597
.access_pages = { .iova = iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
639
__u64 iova;
tools/testing/selftests/iommu/iommufd_fail_nth.c
651
iova = MOCK_APERTURE_START;
tools/testing/selftests/iommu/iommufd_fail_nth.c
652
if (_test_ioctl_ioas_map(self->fd, ioas_id, buffer, PAGE_SIZE, &iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
657
if (_test_ioctl_ioas_map(self->fd, ioas_id2, buffer, PAGE_SIZE, &iova,
tools/testing/selftests/iommu/iommufd_fail_nth.c
701
IOMMU_HW_QUEUE_TYPE_SELFTEST, 0, iova,
tools/testing/selftests/iommu/iommufd_utils.h
405
__u64 iova, size_t page_size,
tools/testing/selftests/iommu/iommufd_utils.h
412
.iova = iova,
tools/testing/selftests/iommu/iommufd_utils.h
425
#define test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, page_size, \
tools/testing/selftests/iommu/iommufd_utils.h
427
ASSERT_EQ(0, _test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, \
tools/testing/selftests/iommu/iommufd_utils.h
431
__u64 iova, size_t page_size,
tools/testing/selftests/iommu/iommufd_utils.h
439
.iova = iova,
tools/testing/selftests/iommu/iommufd_utils.h
455
#define test_cmd_mock_domain_set_dirty(fd, hwpt_id, length, iova, page_size, \
tools/testing/selftests/iommu/iommufd_utils.h
458
_test_cmd_mock_domain_set_dirty(fd, hwpt_id, length, iova, \
tools/testing/selftests/iommu/iommufd_utils.h
462
__u64 iova, size_t page_size,
tools/testing/selftests/iommu/iommufd_utils.h
477
test_cmd_mock_domain_set_dirty(fd, hwpt_id, length, iova, page_size,
tools/testing/selftests/iommu/iommufd_utils.h
483
test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, page_size, bitmap,
tools/testing/selftests/iommu/iommufd_utils.h
495
test_cmd_get_dirty_bitmap(fd, hwpt_id, length, iova, page_size, bitmap,
tools/testing/selftests/iommu/iommufd_utils.h
511
#define test_mock_dirty_bitmaps(hwpt_id, length, iova, page_size, pte_size,\
tools/testing/selftests/iommu/iommufd_utils.h
513
ASSERT_EQ(0, _test_mock_dirty_bitmaps(self->fd, hwpt_id, length, iova, \
tools/testing/selftests/iommu/iommufd_utils.h
626
size_t length, __u64 *iova, unsigned int flags)
tools/testing/selftests/iommu/iommufd_utils.h
638
cmd.iova = *iova;
tools/testing/selftests/iommu/iommufd_utils.h
641
*iova = cmd.iova;
tools/testing/selftests/iommu/iommufd_utils.h
663
#define test_ioctl_ioas_map_fixed(buffer, length, iova) \
tools/testing/selftests/iommu/iommufd_utils.h
665
__u64 __iova = iova; \
tools/testing/selftests/iommu/iommufd_utils.h
674
#define test_ioctl_ioas_map_fixed_id(ioas_id, buffer, length, iova) \
tools/testing/selftests/iommu/iommufd_utils.h
676
__u64 __iova = iova; \
tools/testing/selftests/iommu/iommufd_utils.h
685
#define test_err_ioctl_ioas_map_fixed(_errno, buffer, length, iova) \
tools/testing/selftests/iommu/iommufd_utils.h
687
__u64 __iova = iova; \
tools/testing/selftests/iommu/iommufd_utils.h
697
static int _test_ioctl_ioas_unmap(int fd, unsigned int ioas_id, uint64_t iova,
tools/testing/selftests/iommu/iommufd_utils.h
703
.iova = iova,
tools/testing/selftests/iommu/iommufd_utils.h
713
#define test_ioctl_ioas_unmap(iova, length) \
tools/testing/selftests/iommu/iommufd_utils.h
714
ASSERT_EQ(0, _test_ioctl_ioas_unmap(self->fd, self->ioas_id, iova, \
tools/testing/selftests/iommu/iommufd_utils.h
717
#define test_ioctl_ioas_unmap_id(ioas_id, iova, length) \
tools/testing/selftests/iommu/iommufd_utils.h
718
ASSERT_EQ(0, _test_ioctl_ioas_unmap(self->fd, ioas_id, iova, length, \
tools/testing/selftests/iommu/iommufd_utils.h
721
#define test_err_ioctl_ioas_unmap(_errno, iova, length) \
tools/testing/selftests/iommu/iommufd_utils.h
723
iova, length, NULL))
tools/testing/selftests/iommu/iommufd_utils.h
726
size_t start, size_t length, __u64 *iova,
tools/testing/selftests/iommu/iommufd_utils.h
740
cmd.iova = *iova;
tools/testing/selftests/iommu/iommufd_utils.h
743
*iova = cmd.iova;
tools/testing/selftests/iommu/iommufd_utils.h
766
#define test_ioctl_ioas_map_fixed_file(mfd, start, length, iova) \
tools/testing/selftests/iommu/iommufd_utils.h
768
__u64 __iova = iova; \
tools/testing/selftests/vfio/lib/include/libvfio/iommu.h
23
iova_t iova;
tools/testing/selftests/vfio/lib/include/libvfio/iommu.h
59
int __iommu_hva2iova(struct iommu *iommu, void *vaddr, iova_t *iova);
tools/testing/selftests/vfio/lib/include/libvfio/vfio_pci_device.h
108
static inline int __to_iova(struct vfio_pci_device *device, void *vaddr, iova_t *iova)
tools/testing/selftests/vfio/lib/include/libvfio/vfio_pci_device.h
110
return __iommu_hva2iova(device->iommu, vaddr, iova);
tools/testing/selftests/vfio/lib/iommu.c
106
.iova = region->iova,
tools/testing/selftests/vfio/lib/iommu.c
124
.iova = region->iova,
tools/testing/selftests/vfio/lib/iommu.c
152
static int __vfio_iommu_unmap(int fd, u64 iova, u64 size, u32 flags, u64 *unmapped)
tools/testing/selftests/vfio/lib/iommu.c
156
.iova = iova,
tools/testing/selftests/vfio/lib/iommu.c
173
return __vfio_iommu_unmap(iommu->container_fd, region->iova,
tools/testing/selftests/vfio/lib/iommu.c
177
static int __iommufd_unmap(int fd, u64 iova, u64 length, u32 ioas_id, u64 *unmapped)
tools/testing/selftests/vfio/lib/iommu.c
181
.iova = iova,
tools/testing/selftests/vfio/lib/iommu.c
198
return __iommufd_unmap(iommu->iommufd, region->iova, region->size,
tools/testing/selftests/vfio/lib/iommu.c
69
int __iommu_hva2iova(struct iommu *iommu, void *vaddr, iova_t *iova)
tools/testing/selftests/vfio/lib/iommu.c
80
if (iova)
tools/testing/selftests/vfio/lib/iommu.c
81
*iova = region->iova + (vaddr - region->vaddr);
tools/testing/selftests/vfio/lib/iommu.c
91
iova_t iova;
tools/testing/selftests/vfio/lib/iommu.c
94
ret = __iommu_hva2iova(iommu, vaddr, &iova);
tools/testing/selftests/vfio/lib/iommu.c
97
return iova;
tools/testing/selftests/vfio/lib/iova_allocator.c
58
iova_t iova, last;
tools/testing/selftests/vfio/lib/iova_allocator.c
64
iova = range->start + allocator->range_offset;
tools/testing/selftests/vfio/lib/iova_allocator.c
67
if (check_add_overflow(iova, size - 1, &last) ||
tools/testing/selftests/vfio/lib/iova_allocator.c
72
iova = last & ~(size - 1);
tools/testing/selftests/vfio/lib/iova_allocator.c
75
if (check_add_overflow(iova, size - 1, &last) ||
tools/testing/selftests/vfio/lib/iova_allocator.c
86
return iova;
tools/testing/selftests/vfio/vfio_dma_mapping_mmio_test.c
90
.iova = iova_allocator_alloc(iova_allocator, size),
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
152
region.iova = iova_allocator_alloc(self->iova_allocator, size);
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
156
printf("Mapped HVA %p (size 0x%lx) at IOVA 0x%lx\n", region.vaddr, size, region.iova);
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
158
ASSERT_EQ(region.iova, to_iova(self->device, region.vaddr));
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
160
rc = iommu_mapping_get(device_bdf, region.iova, &mapping);
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
168
printf("Found IOMMU mappings for IOVA 0x%lx:\n", region.iova);
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
196
printf("Unmapped IOVA 0x%lx\n", region.iova);
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
198
ASSERT_NE(0, iommu_mapping_get(device_bdf, region.iova, &mapping));
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
249
region->iova = last_iova & ~(region_size - 1);
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
267
ASSERT_EQ(region->iova, to_iova(self->device, region->vaddr));
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
281
ASSERT_EQ(region->iova, to_iova(self->device, region->vaddr));
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
293
region->iova = ~(iova_t)0 & ~(region->size - 1);
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
38
static int intel_iommu_mapping_get(const char *bdf, u64 iova,
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
51
printf("Searching for IOVA 0x%lx in %s\n", iova, iommu_mapping_path);
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
60
if (line_iova != (iova / getpagesize()))
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
86
static int iommu_mapping_get(const char *bdf, u64 iova,
tools/testing/selftests/vfio/vfio_dma_mapping_test.c
90
return intel_iommu_mapping_get(bdf, iova, mapping);
tools/testing/selftests/vfio/vfio_pci_driver_test.c
33
region->iova = iova_allocator_alloc(iova_allocator, size);