• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/dev/mlx5/mlx5_ib/

Lines Matching refs:umem

82 	if (mr->umem->odp_data) {
85 * setting of umem->odp_data->private to point to our
91 mr->umem->odp_data->private = mr;
94 * umem->odp_data->private value in the invalidation
99 * before umem->odp_data->private == mr is visible to
517 mr->umem = NULL;
545 static int dma_map_mr_pas(struct mlx5_ib_dev *dev, struct ib_umem *umem,
563 mlx5_ib_populate_pas(dev, umem, page_shift, pas, MLX5_IB_MTT_PRESENT);
633 struct ib_umem *umem = ib_umem_get(pd->uobject->context, start, length,
635 if (IS_ERR(umem)) {
636 mlx5_ib_err(dev, "umem get failed (%ld)\n", PTR_ERR(umem));
637 return (void *)umem;
640 mlx5_ib_cont_pages(umem, start, npages, page_shift, ncont, order);
643 ib_umem_release(umem);
650 return umem;
669 static struct mlx5_ib_mr *reg_umr(struct ib_pd *pd, struct ib_umem *umem,
702 err = dma_map_mr_pas(dev, umem, npages, page_shift, &size, &mr_pas,
755 struct ib_umem *umem = mr->umem;
811 ib_umem_num_pages(umem) - start_page_index);
814 __mlx5_ib_populate_pas(dev, umem, PAGE_SHIFT,
818 * umem. */
876 struct ib_umem *umem, int npages,
900 mlx5_ib_populate_pas(dev, umem, page_shift, pas,
931 mr->umem = umem;
967 struct ib_umem *umem;
976 umem = mr_umem_get(pd, start, length, access_flags, &npages,
979 if (IS_ERR(umem))
980 return (void *)umem;
983 mr = reg_umr(pd, umem, virt_addr, length, ncont, page_shift,
997 mr = reg_create(NULL, pd, virt_addr, length, umem, ncont,
1009 mr->umem = umem;
1019 ib_umem_release(umem);
1083 err = dma_map_mr_pas(dev, mr->umem, npages, page_shift, &size,
1139 u64 addr = (flags & IB_MR_REREG_TRANS) ? virt_addr : mr->umem->address;
1140 u64 len = (flags & IB_MR_REREG_TRANS) ? length : mr->umem->length;
1152 * Replace umem. This needs to be done whether or not UMR is
1156 ib_umem_release(mr->umem);
1157 mr->umem = mr_umem_get(pd, addr, len, access_flags, &npages,
1159 if (IS_ERR(mr->umem)) {
1160 err = PTR_ERR(mr->umem);
1161 mr->umem = NULL;
1182 mr = reg_create(ib_mr, pd, addr, len, mr->umem, ncont,
1316 struct ib_umem *umem = mr->umem;
1319 if (umem && umem->odp_data) {
1325 mlx5_ib_invalidate_range(umem, ib_umem_start(umem),
1326 ib_umem_end(umem));
1328 * We kill the umem before the MR for ODP,
1332 ib_umem_release(umem);
1335 /* Avoid double-freeing the umem. */
1336 umem = NULL;
1342 if (umem) {
1343 ib_umem_release(umem);
1437 mr->umem = NULL;