Home
last modified time | relevance | path

Searched refs:umem (Results 1 – 25 of 45) sorted by relevance

12

/freebsd/sys/ofed/drivers/infiniband/core/
H A Dib_umem.c51 static void __ib_umem_release(struct ib_device *dev, struct ib_umem *umem, int dirty) in __ib_umem_release() argument
57 if (umem->nmap > 0) in __ib_umem_release()
58 ib_dma_unmap_sg(dev, umem->sg_head.sgl, in __ib_umem_release()
59 umem->nmap, in __ib_umem_release()
62 for_each_sg(umem->sg_head.sgl, sg, umem->npages, i) { in __ib_umem_release()
68 sg_free_table(&umem->sg_head); in __ib_umem_release()
86 struct ib_umem *umem; in ib_umem_get() local
113 umem = kzalloc(sizeof(struct ib_umem_odp), GFP_KERNEL); in ib_umem_get()
114 if (!umem) in ib_umem_get()
116 umem->is_odp = 1; in ib_umem_get()
[all …]
H A Dib_umem_odp.c60 return ib_umem_start(&umem_odp->umem); in node_start()
73 return ib_umem_end(&umem_odp->umem) - 1; in node_last()
108 struct ib_umem *umem = &umem_odp->umem; in ib_umem_notifier_release_trampoline() local
120 umem->context->invalidate_range(umem_odp, ib_umem_start(umem), in ib_umem_notifier_release_trampoline()
121 ib_umem_end(umem)); in ib_umem_notifier_release_trampoline()
143 item->umem.context->invalidate_range(item, start, start + PAGE_SIZE); in invalidate_page_trampoline()
152 item->umem.context->invalidate_range(item, start, end); in invalidate_range_start_trampoline()
218 struct ib_umem *umem = &umem_odp->umem; in add_umem_to_per_mm() local
221 if (likely(ib_umem_start(umem) != ib_umem_end(umem))) in add_umem_to_per_mm()
230 struct ib_umem *umem = &umem_odp->umem; in remove_umem_from_per_mm() local
[all …]
/freebsd/sys/ofed/include/rdma/
H A Dib_umem.h61 static inline int ib_umem_offset(struct ib_umem *umem) in ib_umem_offset() argument
63 return umem->address & (BIT(umem->page_shift) - 1); in ib_umem_offset()
67 static inline unsigned long ib_umem_start(struct ib_umem *umem) in ib_umem_start() argument
69 return umem->address - ib_umem_offset(umem); in ib_umem_start()
73 static inline unsigned long ib_umem_end(struct ib_umem *umem) in ib_umem_end() argument
75 return ALIGN(umem->address + umem->length, BIT(umem->page_shift)); in ib_umem_end()
78 static inline size_t ib_umem_num_pages(struct ib_umem *umem) in ib_umem_num_pages() argument
80 return (ib_umem_end(umem) - ib_umem_start(umem)) >> umem->page_shift; in ib_umem_num_pages()
87 void ib_umem_release(struct ib_umem *umem);
88 int ib_umem_page_count(struct ib_umem *umem);
[all …]
H A Dib_umem_odp.h49 struct ib_umem umem; member
84 static inline struct ib_umem_odp *to_ib_umem_odp(struct ib_umem *umem) in to_ib_umem_odp() argument
86 return container_of(umem, struct ib_umem_odp, umem); in to_ib_umem_odp()
/freebsd/sys/dev/mlx5/mlx5_ib/
H A Dmlx5_ib_mem.c42 void mlx5_ib_cont_pages(struct ib_umem *umem, u64 addr, in mlx5_ib_cont_pages() argument
61 for_each_sg(umem->sg_head.sgl, sg, umem->nmap, entry) { in mlx5_ib_cont_pages()
126 void __mlx5_ib_populate_pas(struct mlx5_ib_dev *dev, struct ib_umem *umem, in __mlx5_ib_populate_pas() argument
130 unsigned long umem_page_shift = umem->page_shift; in __mlx5_ib_populate_pas()
140 const bool odp = umem->odp_data != NULL; in __mlx5_ib_populate_pas()
147 dma_addr_t pa = umem->odp_data->dma_list[offset + i]; in __mlx5_ib_populate_pas()
156 for_each_sg(umem->sg_head.sgl, sg, umem->nmap, entry) { in __mlx5_ib_populate_pas()
175 void mlx5_ib_populate_pas(struct mlx5_ib_dev *dev, struct ib_umem *umem, in mlx5_ib_populate_pas() argument
178 return __mlx5_ib_populate_pas(dev, umem, page_shift, 0, in mlx5_ib_populate_pas()
179 ib_umem_num_pages(umem), pas, in mlx5_ib_populate_pas()
H A Dmlx5_ib_doorbell.c37 struct ib_umem *umem; member
62 page->umem = ib_umem_get(&context->ibucontext, virt & PAGE_MASK, in mlx5_ib_db_map_user()
64 if (IS_ERR(page->umem)) { in mlx5_ib_db_map_user()
65 err = PTR_ERR(page->umem); in mlx5_ib_db_map_user()
73 db->dma = sg_dma_address(page->umem->sg_head.sgl) + (virt & ~PAGE_MASK); in mlx5_ib_db_map_user()
89 ib_umem_release(db->u.user_page->umem); in mlx5_ib_db_unmap_user()
H A Dmlx5_ib_mr.c83 if (mr->umem->odp_data) { in update_odp_mr()
92 mr->umem->odp_data->private = mr; in update_odp_mr()
519 mr->umem = NULL; in mlx5_ib_get_dma_mr()
547 static int dma_map_mr_pas(struct mlx5_ib_dev *dev, struct ib_umem *umem, in dma_map_mr_pas() argument
565 mlx5_ib_populate_pas(dev, umem, page_shift, pas, MLX5_IB_MTT_PRESENT); in dma_map_mr_pas()
630 struct ib_umem *umem = ib_umem_get(pd->uobject->context, start, length, in mr_umem_get() local
632 if (IS_ERR(umem)) { in mr_umem_get()
633 mlx5_ib_err(dev, "umem get failed (%ld)\n", PTR_ERR(umem)); in mr_umem_get()
634 return (void *)umem; in mr_umem_get()
637 mlx5_ib_cont_pages(umem, start, MLX5_MKEY_PAGE_SHIFT_MASK, npages, page_shift, ncont, order); in mr_umem_get()
[all …]
H A Dmlx5_ib_srq.c108 srq->umem = ib_umem_get(&ucontext->ibucontext, ucmd.buf_addr, buf_size, 0, 0); in create_srq_user()
109 if (IS_ERR(srq->umem)) { in create_srq_user()
111 err = PTR_ERR(srq->umem); in create_srq_user()
115 mlx5_ib_cont_pages(srq->umem, ucmd.buf_addr, 0, &npages, in create_srq_user()
130 mlx5_ib_populate_pas(dev, srq->umem, page_shift, in->pas, 0); in create_srq_user()
151 ib_umem_release(srq->umem); in create_srq_user()
227 ib_umem_release(srq->umem); in destroy_srq_user()
409 ib_umem_release(msrq->umem); in mlx5_ib_destroy_srq()
H A Dmlx5_ib_cq.c775 cq->buf.umem = ib_umem_get(&context->ibucontext, ucmd.buf_addr, in create_cq_user()
778 if (IS_ERR(cq->buf.umem)) { in create_cq_user()
779 err = PTR_ERR(cq->buf.umem); in create_cq_user()
788 mlx5_ib_cont_pages(cq->buf.umem, ucmd.buf_addr, 0, &npages, &page_shift, in create_cq_user()
802 mlx5_ib_populate_pas(dev, cq->buf.umem, page_shift, pas, 0); in create_cq_user()
852 ib_umem_release(cq->buf.umem); in create_cq_user()
862 ib_umem_release(cq->buf.umem); in destroy_cq_user()
1142 struct ib_umem *umem; in resize_user() local
1145 struct ib_ucontext *context = cq->buf.umem->context; in resize_user()
1158 umem = ib_umem_get(context, ucmd.buf_addr, in resize_user()
[all …]
H A Dmlx5_ib.h280 struct ib_umem *umem; member
333 struct ib_umem *umem; member
453 struct ib_umem *umem; member
494 struct ib_umem *umem; member
538 struct ib_umem *umem; member
573 struct ib_umem *umem; member
1017 void mlx5_ib_cont_pages(struct ib_umem *umem, u64 addr,
1021 void __mlx5_ib_populate_pas(struct mlx5_ib_dev *dev, struct ib_umem *umem,
1024 void mlx5_ib_populate_pas(struct mlx5_ib_dev *dev, struct ib_umem *umem,
1030 int mlx5_mr_ib_cont_pages(struct ib_umem *umem, u64 addr, int *count, int *shift);
[all …]
H A Dmlx5_ib_devx.c140 struct ib_umem *umem; member
2112 obj->umem = ib_umem_get(ucontext, addr, size, access, 0); in devx_umem_get()
2113 if (IS_ERR(obj->umem)) in devx_umem_get()
2114 return PTR_ERR(obj->umem); in devx_umem_get()
2116 mlx5_ib_cont_pages(obj->umem, obj->umem->address, in devx_umem_get()
2121 ib_umem_release(obj->umem); in devx_umem_get()
2126 obj->page_offset = obj->umem->address & page_mask; in devx_umem_get()
2145 void *umem; in devx_umem_reg_cmd_build() local
2148 umem = MLX5_ADDR_OF(create_umem_in, cmd->in, umem); in devx_umem_reg_cmd_build()
2149 mtt = (__be64 *)MLX5_ADDR_OF(umem, umem, mtt); in devx_umem_reg_cmd_build()
[all …]
H A Dmlx5_ib_qp.c141 struct ib_umem *umem = base->ubuffer.umem; in mlx5_ib_read_user_wqe() local
158 if (offset > umem->length || in mlx5_ib_read_user_wqe()
159 (send && offset + sizeof(struct mlx5_wqe_ctrl_seg) > umem->length)) in mlx5_ib_read_user_wqe()
163 ret = ib_umem_copy_from(buffer, umem, offset, first_copy_length); in mlx5_ib_read_user_wqe()
179 ret = ib_umem_copy_from(buffer + first_copy_length, umem, wq->offset, in mlx5_ib_read_user_wqe()
652 struct ib_umem **umem, in mlx5_ib_umem_get() argument
658 *umem = ib_umem_get(pd->uobject->context, addr, size, 0, 0); in mlx5_ib_umem_get()
659 if (IS_ERR(*umem)) { in mlx5_ib_umem_get()
661 return PTR_ERR(*umem); in mlx5_ib_umem_get()
664 mlx5_ib_cont_pages(*umem, addr, 0, npages, page_shift, ncont, NULL); in mlx5_ib_umem_get()
[all …]
/freebsd/sys/dev/mlx4/mlx4_ib/
H A Dmlx4_ib_mr.c80 mr->umem = NULL; in mlx4_ib_get_dma_mr()
94 struct ib_umem *umem) in mlx4_ib_umem_write_mtt() argument
109 for_each_sg(umem->sg_head.sgl, sg, umem->nmap, entry) { in mlx4_ib_umem_write_mtt()
113 (k << umem->page_shift); in mlx4_ib_umem_write_mtt()
153 mr->umem = ib_umem_get(pd->uobject->context, start, length, in mlx4_ib_reg_user_mr()
155 if (IS_ERR(mr->umem)) { in mlx4_ib_reg_user_mr()
156 err = PTR_ERR(mr->umem); in mlx4_ib_reg_user_mr()
160 n = ib_umem_page_count(mr->umem); in mlx4_ib_reg_user_mr()
161 shift = mr->umem->page_shift; in mlx4_ib_reg_user_mr()
168 err = mlx4_ib_umem_write_mtt(dev, &mr->mmr.mtt, mr->umem); in mlx4_ib_reg_user_mr()
[all …]
H A Dmlx4_ib_doorbell.c39 struct ib_umem *umem; member
64 page->umem = ib_umem_get(&context->ibucontext, virt & PAGE_MASK, in mlx4_ib_db_map_user()
66 if (IS_ERR(page->umem)) { in mlx4_ib_db_map_user()
67 err = PTR_ERR(page->umem); in mlx4_ib_db_map_user()
75 db->dma = sg_dma_address(page->umem->sg_head.sgl) + (virt & ~PAGE_MASK); in mlx4_ib_db_map_user()
91 ib_umem_release(db->u.user_page->umem); in mlx4_ib_db_unmap_user()
H A Dmlx4_ib_srq.c113 srq->umem = in mlx4_ib_create_srq()
115 if (IS_ERR(srq->umem)) in mlx4_ib_create_srq()
116 return PTR_ERR(srq->umem); in mlx4_ib_create_srq()
118 err = mlx4_mtt_init(dev->dev, ib_umem_page_count(srq->umem), in mlx4_ib_create_srq()
119 srq->umem->page_shift, &srq->mtt); in mlx4_ib_create_srq()
123 err = mlx4_ib_umem_write_mtt(dev, &srq->mtt, srq->umem); in mlx4_ib_create_srq()
213 if (!srq->umem) in mlx4_ib_create_srq()
215 ib_umem_release(srq->umem); in mlx4_ib_create_srq()
289 ib_umem_release(msrq->umem); in mlx4_ib_destroy_srq()
H A Dmlx4_ib_cq.c141 struct ib_umem **umem, u64 buf_addr, int cqe) in mlx4_ib_get_cq_umem() argument
148 *umem = ib_umem_get(&context->ibucontext, buf_addr, cqe * cqe_size, in mlx4_ib_get_cq_umem()
150 if (IS_ERR(*umem)) in mlx4_ib_get_cq_umem()
151 return PTR_ERR(*umem); in mlx4_ib_get_cq_umem()
153 err = mlx4_mtt_init(dev->dev, ib_umem_page_count(*umem), in mlx4_ib_get_cq_umem()
154 (*umem)->page_shift, &buf->mtt); in mlx4_ib_get_cq_umem()
158 err = mlx4_ib_umem_write_mtt(dev, &buf->mtt, *umem); in mlx4_ib_get_cq_umem()
168 ib_umem_release(*umem); in mlx4_ib_get_cq_umem()
211 err = mlx4_ib_get_cq_umem(dev, udata, &cq->buf, &cq->umem, in mlx4_ib_create_cq()
268 ib_umem_release(cq->umem); in mlx4_ib_create_cq()
[all …]
/freebsd/sys/ofed/drivers/infiniband/ulp/sdp/
H A Dsdp_zcopy.c64 BUG_ON(!tx_sa->umem); in sdp_post_srcavail()
65 BUG_ON(!tx_sa->umem->chunk_list.next); in sdp_post_srcavail()
67 chunk = list_entry(tx_sa->umem->chunk_list.next, struct ib_umem_chunk, list); in sdp_post_srcavail()
70 off = tx_sa->umem->offset; in sdp_post_srcavail()
71 len = tx_sa->umem->length; in sdp_post_srcavail()
86 payload_len = MIN(tx_sa->umem->page_size - off, len); in sdp_post_srcavail()
108 tx_sa->bytes_sent = tx_sa->umem->length; in sdp_post_srcavail()
423 struct ib_umem *umem; in sdp_alloc_fmr() local
447 umem = ib_umem_get(&sdp_sk(sk)->context, (unsigned long)uaddr, len, in sdp_alloc_fmr()
450 if (IS_ERR(umem)) { in sdp_alloc_fmr()
[all …]
/freebsd/sys/dev/bnxt/bnxt_re/
H A Dib_verbs.c39 struct scatterlist *get_ib_umem_sgl(struct ib_umem *umem, u32 *nmap) in get_ib_umem_sgl() argument
42 *nmap = umem->nmap; in get_ib_umem_sgl()
43 return umem->sg_head.sgl; in get_ib_umem_sgl()
46 static inline void bnxt_re_peer_mem_release(struct ib_umem *umem) in bnxt_re_peer_mem_release() argument
49 ib_umem_release(umem); in bnxt_re_peer_mem_release()
1070 if (srq->umem && !IS_ERR(srq->umem)) in bnxt_re_destroy_srq()
1071 ib_umem_release(srq->umem); in bnxt_re_destroy_srq()
1113 static inline size_t ib_umem_num_pages_compat(struct ib_umem *umem) in ib_umem_num_pages_compat() argument
1115 return ib_umem_num_pages(umem); in ib_umem_num_pages_compat()
1128 struct ib_umem *umem; in bnxt_re_init_user_srq() local
[all …]
H A Dib_verbs.h140 struct scatterlist *get_ib_umem_sgl(struct ib_umem *umem, u32 *nmap);
175 struct ib_umem *umem; member
225 struct ib_umem *umem; member
396 static inline size_t ib_umem_num_pages_compat(struct ib_umem *umem);
397 static inline void bnxt_re_peer_mem_release(struct ib_umem *umem);
/freebsd/cddl/lib/libumem/
H A DMakefile6 LIB= umem
7 SRCS= umem.c
/freebsd/sys/netsmb/
H A Dsmb_subr.c128 smb_memdupin(void *umem, size_t len) in smb_memdupin() argument
135 if (copyin(umem, p, len) == 0) in smb_memdupin()
145 smb_memdup(const void *umem, int len) in smb_memdup() argument
152 bcopy(umem, p, len); in smb_memdup()
H A Dsmb_subr.h102 void *smb_memdup(const void *umem, int len);
104 void *smb_memdupin(void *umem, size_t len);
/freebsd/sys/dev/cxgbe/iw_cxgbe/
H A Dmem.c459 mhp->umem = ib_umem_get(pd->uobject->context, start, length, acc, 0); in c4iw_reg_user_mr()
460 if (IS_ERR(mhp->umem)) { in c4iw_reg_user_mr()
464 shift = mhp->umem->page_shift; in c4iw_reg_user_mr()
466 n = ib_umem_num_pages(mhp->umem); in c4iw_reg_user_mr()
478 for_each_sg(mhp->umem->sg_head.sgl, sg, mhp->umem->nmap, entry) { in c4iw_reg_user_mr()
524 ib_umem_release(mhp->umem); in c4iw_reg_user_mr()
725 if (mhp->umem) in c4iw_dereg_mr()
726 ib_umem_release(mhp->umem); in c4iw_dereg_mr()
/freebsd/sys/contrib/device-tree/Bindings/remoteproc/
H A Dwkup_m3_rproc.txt26 regions. These should be named "umem" & "dmem".
45 reg-names = "umem", "dmem";
/freebsd/sys/dev/mthca/
H A Dmthca_provider.c844 mr->umem = NULL; in mthca_get_dma_mr()
877 mr->umem = ib_umem_get(pd->uobject->context, start, length, acc, in mthca_reg_user_mr()
880 if (IS_ERR(mr->umem)) { in mthca_reg_user_mr()
881 err = PTR_ERR(mr->umem); in mthca_reg_user_mr()
885 shift = mr->umem->page_shift; in mthca_reg_user_mr()
886 n = mr->umem->nmap; in mthca_reg_user_mr()
904 for_each_sg(mr->umem->sg_head.sgl, sg, mr->umem->nmap, entry) { in mthca_reg_user_mr()
941 ib_umem_release(mr->umem); in mthca_reg_user_mr()
953 ib_umem_release(mmr->umem); in mthca_dereg_mr()

12