Lines Matching refs:odp
163 struct ib_umem_odp *odp = to_ib_umem_odp(mr->umem);
171 pa = odp->dma_list[idx + i];
188 struct ib_umem_odp *odp = to_ib_umem_odp(mr->umem);
191 mutex_lock(&odp->umem_mutex);
192 if (odp->npages) {
194 ib_umem_odp_unmap_dma_pages(odp, ib_umem_start(odp),
195 ib_umem_end(odp));
196 WARN_ON(odp->npages);
198 odp->private = NULL;
199 mutex_unlock(&odp->umem_mutex);
217 struct ib_umem_odp *odp = to_ib_umem_odp(mr->umem);
218 unsigned long idx = ib_umem_start(odp) >> MLX5_IMR_MTT_SHIFT;
238 ib_umem_odp_release(odp);
263 struct ib_umem_odp *odp = to_ib_umem_odp(mr->umem);
264 unsigned long idx = ib_umem_start(odp) >> MLX5_IMR_MTT_SHIFT;
468 struct ib_umem_odp *odp;
473 odp = ib_umem_odp_alloc_child(to_ib_umem_odp(imr->umem),
476 if (IS_ERR(odp))
477 return ERR_CAST(odp);
485 mr->umem = &odp->umem;
490 odp->private = mr;
526 ib_umem_odp_release(odp);
670 static int pagefault_real_mr(struct mlx5_ib_mr *mr, struct ib_umem_odp *odp,
684 page_shift = odp->page_shift;
685 start_idx = (user_va - ib_umem_start(odp)) >> page_shift;
688 if (odp->umem.writable && !downgrade)
691 np = ib_umem_odp_map_dma_and_lock(odp, user_va, bcnt, access_mask, fault);
700 mutex_unlock(&odp->umem_mutex);
812 struct ib_umem_odp *odp = to_ib_umem_odp(mr->umem);
818 if (!odp->is_implicit_odp) {
822 (u64)odp->umem.address, &user_va))
824 if (unlikely(user_va >= ib_umem_end(odp) ||
825 ib_umem_end(odp) - user_va < bcnt))
827 return pagefault_real_mr(mr, odp, user_va, bcnt, bytes_mapped,
830 return pagefault_implicit_mr(mr, odp, io_virt, bcnt, bytes_mapped,
1627 mlx5_ib_err(dev, "failed to enable odp EQ %d\n", err);
1750 struct ib_umem_odp *odp;
1764 odp = to_ib_umem_odp(mr->umem);
1768 !odp->umem.writable)