Lines Matching refs:odp
161 struct ib_umem_odp *odp = to_ib_umem_odp(mr->umem);
169 pa = odp->dma_list[idx + i];
196 struct ib_umem_odp *odp = to_ib_umem_odp(mr->umem);
202 ib_umem_start(odp) >> MLX5_IMR_MTT_SHIFT, 1, 0,
212 struct ib_umem_odp *odp = to_ib_umem_odp(mr->umem);
213 unsigned long idx = ib_umem_start(odp) >> MLX5_IMR_MTT_SHIFT;
409 struct ib_umem_odp *odp;
414 odp = ib_umem_odp_alloc_child(to_ib_umem_odp(imr->umem),
417 if (IS_ERR(odp))
418 return ERR_CAST(odp);
424 ib_umem_odp_release(odp);
431 mr->umem = &odp->umem;
436 odp->private = mr;
552 static int pagefault_real_mr(struct mlx5_ib_mr *mr, struct ib_umem_odp *odp,
566 page_shift = odp->page_shift;
567 start_idx = (user_va - ib_umem_start(odp)) >> page_shift;
570 if (odp->umem.writable && !downgrade)
573 np = ib_umem_odp_map_dma_and_lock(odp, user_va, bcnt, access_mask, fault);
582 mutex_unlock(&odp->umem_mutex);
740 struct ib_umem_odp *odp = to_ib_umem_odp(mr->umem);
748 if (!odp->is_implicit_odp) {
752 (u64)odp->umem.address, &user_va))
754 if (unlikely(user_va >= ib_umem_end(odp) ||
755 ib_umem_end(odp) - user_va < bcnt))
757 return pagefault_real_mr(mr, odp, user_va, bcnt, bytes_mapped,
760 return pagefault_implicit_mr(mr, odp, io_virt, bcnt, bytes_mapped,
1557 mlx5_ib_err(dev, "failed to enable odp EQ %d\n", err);