Lines Matching refs:iova

104 					 u64 iova, u64 size, u64 paddr)
107 u64 last = iova + size - 1;
109 while (iova <= last) {
110 map = &domain->bounce_maps[iova >> PAGE_SHIFT];
118 iova += PAGE_SIZE;
124 u64 iova, u64 size)
127 u64 last = iova + size - 1;
129 while (iova <= last) {
130 map = &domain->bounce_maps[iova >> PAGE_SHIFT];
132 iova += PAGE_SIZE;
161 dma_addr_t iova, size_t size,
169 if (iova >= domain->bounce_size)
173 map = &domain->bounce_maps[iova >> PAGE_SHIFT];
174 offset = offset_in_page(iova);
185 iova += sz;
190 vduse_domain_get_coherent_page(struct vduse_iova_domain *domain, u64 iova)
192 u64 start = iova & PAGE_MASK;
202 page = pfn_to_page((map->addr + iova - map->start) >> PAGE_SHIFT);
211 vduse_domain_get_bounce_page(struct vduse_iova_domain *domain, u64 iova)
217 map = &domain->bounce_maps[iova >> PAGE_SHIFT];
368 dma_addr_t iova, size_t size)
373 free_iova_fast(iovad, iova >> shift, iova_len);
384 dma_addr_t iova = vduse_domain_alloc_iova(iovad, size, limit);
386 if (!iova)
393 if (vduse_domain_map_bounce_page(domain, (u64)iova, (u64)size, pa))
397 vduse_domain_bounce(domain, iova, size, DMA_TO_DEVICE);
401 return iova;
405 vduse_domain_free_iova(iovad, iova, size);
430 dma_addr_t iova = vduse_domain_alloc_iova(iovad, size, limit);
433 if (!iova || !orig)
437 if (vduse_iotlb_add_range(domain, (u64)iova, (u64)iova + size - 1,
439 domain->file, (u64)iova)) {
445 *dma_addr = iova;
452 if (iova)
453 vduse_domain_free_iova(iovad, iova, size);
488 unsigned long iova = vmf->pgoff << PAGE_SHIFT;
494 if (iova < domain->bounce_size)
495 page = vduse_domain_get_bounce_page(domain, iova);
497 page = vduse_domain_get_coherent_page(domain, iova);