Lines Matching defs:iova

33 					unsigned long iova,
38 iter->cur_iova = iova;
40 iter->area = iopt_area_iter_first(iopt, iova, iova);
109 static int iopt_alloc_iova(struct io_pagetable *iopt, unsigned long *iova,
157 *iova = used_span.start_hole;
164 static int iopt_check_iova(struct io_pagetable *iopt, unsigned long iova,
171 if ((iova & (iopt->iova_alignment - 1)))
174 if (check_add_overflow(iova, length - 1, &last))
178 if (iopt_reserved_iter_first(iopt, iova, last))
182 if (iopt_area_iter_first(iopt, iova, last))
191 struct iopt_pages *pages, unsigned long iova,
205 area->node.start = iova;
206 if (check_add_overflow(iova, length - 1, &area->node.last))
243 unsigned long iova;
282 iova = *dst_iova;
284 rc = iopt_insert_area(iopt, elm->area, elm->pages, iova,
288 iova += elm->length;
380 * iopt_map_user_pages() - Map a user VA to an iova in the io page table
383 * @iova: If IOPT_ALLOC_IOVA is set this is unused on input and contains
384 * the chosen iova on output. Otherwise is the iova to map to on input
390 * iova, uptr, and length must be aligned to iova_alignment. For domain backed
391 * page tables this will pin the pages and load them into the domain at iova.
399 unsigned long *iova, void __user *uptr,
417 rc = iopt_map_pages(iopt, &pages_list, length, iova, iommu_prot, flags);
436 unsigned long iova, size_t length,
445 unsigned long last_iova = iova + length - 1;
449 iopt_for_each_contig_area(&iter, area, arg->iopt, iova, last_iova) {
479 iter = iova_bitmap_alloc(bitmap->iova, bitmap->length,
507 if (check_add_overflow(bitmap->iova, bitmap->length - 1, &last_iova))
510 if (bitmap->iova > ULONG_MAX || last_iova > ULONG_MAX)
513 if ((bitmap->iova & (iommu_pgsize - 1)) ||
520 if ((bitmap->iova & (bitmap->page_size - 1)) ||
599 int iopt_get_pages(struct io_pagetable *iopt, unsigned long iova,
609 if (check_add_overflow(iova, length - 1, &last_iova))
613 iopt_for_each_contig_area(&iter, area, iopt, iova, last_iova) {
720 * iopt_unmap_iova() - Remove a range of iova
722 * @iova: Starting iova to unmap
729 int iopt_unmap_iova(struct io_pagetable *iopt, unsigned long iova,
737 if (check_add_overflow(iova, length - 1, &iova_last))
740 return iopt_unmap_iova_range(iopt, iova, iova_last, unmapped);
1160 * iopt_area_split - Split an area into two parts at iova
1162 * @iova: Becomes the last of a new area
1168 static int iopt_area_split(struct iopt_area *area, unsigned long iova)
1173 unsigned long new_start = iova + 1;
1182 if (iova == start_iova || iova == last_iova)