| /linux-6.15/drivers/infiniband/core/ |
| H A D | umem_dmabuf.c | 29 if (umem_dmabuf->sgt) in ib_umem_dmabuf_map_pages() 40 end = ALIGN(umem_dmabuf->umem.address + umem_dmabuf->umem.length, in ib_umem_dmabuf_map_pages() 65 umem_dmabuf->umem.sgt_append.sgt.sgl = umem_dmabuf->first_sg; in ib_umem_dmabuf_map_pages() 109 dma_buf_unmap_attachment(umem_dmabuf->attach, umem_dmabuf->sgt, in ib_umem_dmabuf_unmap_pages() 142 umem_dmabuf = kzalloc(sizeof(*umem_dmabuf), GFP_KERNEL); in ib_umem_dmabuf_get_with_dma_device() 143 if (!umem_dmabuf) { in ib_umem_dmabuf_get_with_dma_device() 162 umem_dmabuf); in ib_umem_dmabuf_get_with_dma_device() 167 return umem_dmabuf; in ib_umem_dmabuf_get_with_dma_device() 170 kfree(umem_dmabuf); in ib_umem_dmabuf_get_with_dma_device() 227 return umem_dmabuf; in ib_umem_dmabuf_get_pinned_with_dma_device() [all …]
|
| H A D | Makefile | 44 ib_uverbs-$(CONFIG_INFINIBAND_USER_MEM) += umem.o umem_dmabuf.o
|
| /linux-6.15/include/rdma/ |
| H A D | ib_umem.h | 159 int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf *umem_dmabuf); 160 void ib_umem_dmabuf_unmap_pages(struct ib_umem_dmabuf *umem_dmabuf); 161 void ib_umem_dmabuf_release(struct ib_umem_dmabuf *umem_dmabuf); 162 void ib_umem_dmabuf_revoke(struct ib_umem_dmabuf *umem_dmabuf); 216 static inline int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf *umem_dmabuf) in ib_umem_dmabuf_map_pages() argument 220 static inline void ib_umem_dmabuf_unmap_pages(struct ib_umem_dmabuf *umem_dmabuf) { } in ib_umem_dmabuf_unmap_pages() argument 221 static inline void ib_umem_dmabuf_release(struct ib_umem_dmabuf *umem_dmabuf) { } in ib_umem_dmabuf_release() argument 222 static inline void ib_umem_dmabuf_revoke(struct ib_umem_dmabuf *umem_dmabuf) {} in ib_umem_dmabuf_revoke() argument
|
| /linux-6.15/drivers/infiniband/hw/mana/ |
| H A D | mr.c | 183 struct ib_umem_dmabuf *umem_dmabuf; in mana_ib_reg_user_mr_dmabuf() local 199 umem_dmabuf = ib_umem_dmabuf_get_pinned(ibdev, start, length, fd, access_flags); in mana_ib_reg_user_mr_dmabuf() 200 if (IS_ERR(umem_dmabuf)) { in mana_ib_reg_user_mr_dmabuf() 201 err = PTR_ERR(umem_dmabuf); in mana_ib_reg_user_mr_dmabuf() 206 mr->umem = &umem_dmabuf->umem; in mana_ib_reg_user_mr_dmabuf()
|
| /linux-6.15/drivers/infiniband/hw/mlx5/ |
| H A D | mr.c | 1559 struct mlx5_ib_mr *mr = umem_dmabuf->private; in mlx5_ib_dmabuf_invalidate_cb() 1563 if (!umem_dmabuf->sgt || !mr) in mlx5_ib_dmabuf_invalidate_cb() 1567 ib_umem_dmabuf_unmap_pages(umem_dmabuf); in mlx5_ib_dmabuf_invalidate_cb() 1583 struct ib_umem_dmabuf *umem_dmabuf; in reg_user_mr_dmabuf() local 1591 umem_dmabuf = ib_umem_dmabuf_get(&dev->ib_dev, in reg_user_mr_dmabuf() 1600 if (IS_ERR(umem_dmabuf)) { in reg_user_mr_dmabuf() 1602 PTR_ERR(umem_dmabuf)); in reg_user_mr_dmabuf() 1603 return ERR_CAST(umem_dmabuf); in reg_user_mr_dmabuf() 1609 ib_umem_release(&umem_dmabuf->umem); in reg_user_mr_dmabuf() 1616 umem_dmabuf->private = mr; in reg_user_mr_dmabuf() [all …]
|
| H A D | odp.c | 825 struct ib_umem_dmabuf *umem_dmabuf = to_ib_umem_dmabuf(mr->umem); in pagefault_dmabuf_mr() local 833 dma_resv_lock(umem_dmabuf->attach->dmabuf->resv, NULL); in pagefault_dmabuf_mr() 834 err = ib_umem_dmabuf_map_pages(umem_dmabuf); in pagefault_dmabuf_mr() 836 dma_resv_unlock(umem_dmabuf->attach->dmabuf->resv); in pagefault_dmabuf_mr() 840 page_size = mlx5_umem_dmabuf_find_best_pgsz(umem_dmabuf); in pagefault_dmabuf_mr() 842 ib_umem_dmabuf_unmap_pages(umem_dmabuf); in pagefault_dmabuf_mr() 850 dma_resv_unlock(umem_dmabuf->attach->dmabuf->resv); in pagefault_dmabuf_mr()
|
| H A D | mlx5_ib.h | 108 mlx5_umem_dmabuf_find_best_pgsz(struct ib_umem_dmabuf *umem_dmabuf) in mlx5_umem_dmabuf_find_best_pgsz() argument 116 return ib_umem_find_best_pgsz(&umem_dmabuf->umem, PAGE_SIZE, in mlx5_umem_dmabuf_find_best_pgsz() 117 umem_dmabuf->umem.iova); in mlx5_umem_dmabuf_find_best_pgsz()
|
| H A D | devx.c | 2241 struct ib_umem_dmabuf *umem_dmabuf; in devx_umem_get() local 2249 umem_dmabuf = ib_umem_dmabuf_get_pinned( in devx_umem_get() 2251 if (IS_ERR(umem_dmabuf)) in devx_umem_get() 2252 return PTR_ERR(umem_dmabuf); in devx_umem_get() 2253 obj->umem = &umem_dmabuf->umem; in devx_umem_get()
|
| /linux-6.15/drivers/infiniband/hw/efa/ |
| H A D | efa_verbs.c | 1733 struct ib_umem_dmabuf *umem_dmabuf; in efa_reg_user_mr_dmabuf() local 1743 umem_dmabuf = ib_umem_dmabuf_get_pinned(ibpd->device, start, length, fd, in efa_reg_user_mr_dmabuf() 1745 if (IS_ERR(umem_dmabuf)) { in efa_reg_user_mr_dmabuf() 1746 err = PTR_ERR(umem_dmabuf); in efa_reg_user_mr_dmabuf() 1751 mr->umem = &umem_dmabuf->umem; in efa_reg_user_mr_dmabuf()
|
| /linux-6.15/drivers/infiniband/hw/irdma/ |
| H A D | verbs.c | 3091 struct ib_umem_dmabuf *umem_dmabuf; in irdma_reg_user_mr_dmabuf() local 3098 umem_dmabuf = ib_umem_dmabuf_get_pinned(pd->device, start, len, fd, access); in irdma_reg_user_mr_dmabuf() 3099 if (IS_ERR(umem_dmabuf)) { in irdma_reg_user_mr_dmabuf() 3100 err = PTR_ERR(umem_dmabuf); in irdma_reg_user_mr_dmabuf() 3105 iwmr = irdma_alloc_iwmr(&umem_dmabuf->umem, pd, virt, IRDMA_MEMREG_TYPE_MEM); in irdma_reg_user_mr_dmabuf() 3121 ib_umem_release(&umem_dmabuf->umem); in irdma_reg_user_mr_dmabuf()
|
| /linux-6.15/drivers/infiniband/hw/bnxt_re/ |
| H A D | ib_verbs.c | 4262 struct ib_umem_dmabuf *umem_dmabuf; in bnxt_re_reg_user_mr_dmabuf() local 4266 umem_dmabuf = ib_umem_dmabuf_get_pinned(&rdev->ibdev, start, length, in bnxt_re_reg_user_mr_dmabuf() 4268 if (IS_ERR(umem_dmabuf)) in bnxt_re_reg_user_mr_dmabuf() 4269 return ERR_CAST(umem_dmabuf); in bnxt_re_reg_user_mr_dmabuf() 4271 umem = &umem_dmabuf->umem; in bnxt_re_reg_user_mr_dmabuf()
|