Home
last modified time | relevance | path

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

12

/linux-2.6.39/drivers/infiniband/core/
Dumem.c49 static void __ib_umem_release(struct ib_device *dev, struct ib_umem *umem, int dirty) in __ib_umem_release() argument
54 list_for_each_entry_safe(chunk, tmp, &umem->chunk_list, list) { in __ib_umem_release()
60 if (umem->writable && dirty) in __ib_umem_release()
80 struct ib_umem *umem; in ib_umem_get() local
99 umem = kmalloc(sizeof *umem, GFP_KERNEL); in ib_umem_get()
100 if (!umem) in ib_umem_get()
103 umem->context = context; in ib_umem_get()
104 umem->length = size; in ib_umem_get()
105 umem->offset = addr & ~PAGE_MASK; in ib_umem_get()
106 umem->page_size = PAGE_SIZE; in ib_umem_get()
[all …]
DMakefile12 ib_core-$(CONFIG_INFINIBAND_USER_MEM) += umem.o
/linux-2.6.39/drivers/infiniband/hw/mlx4/
Ddoorbell.c39 struct ib_umem *umem; member
65 page->umem = ib_umem_get(&context->ibucontext, virt & PAGE_MASK, in mlx4_ib_db_map_user()
67 if (IS_ERR(page->umem)) { in mlx4_ib_db_map_user()
68 err = PTR_ERR(page->umem); in mlx4_ib_db_map_user()
76 chunk = list_entry(page->umem->chunk_list.next, struct ib_umem_chunk, list); in mlx4_ib_db_map_user()
93 ib_umem_release(db->u.user_page->umem); in mlx4_ib_db_unmap_user()
Dmr.c66 mr->umem = NULL; in mlx4_ib_get_dma_mr()
80 struct ib_umem *umem) in mlx4_ib_umem_write_mtt() argument
95 list_for_each_entry(chunk, &umem->chunk_list, list) in mlx4_ib_umem_write_mtt()
100 umem->page_size * k; in mlx4_ib_umem_write_mtt()
138 mr->umem = ib_umem_get(pd->uobject->context, start, length, in mlx4_ib_reg_user_mr()
140 if (IS_ERR(mr->umem)) { in mlx4_ib_reg_user_mr()
141 err = PTR_ERR(mr->umem); in mlx4_ib_reg_user_mr()
145 n = ib_umem_page_count(mr->umem); in mlx4_ib_reg_user_mr()
146 shift = ilog2(mr->umem->page_size); in mlx4_ib_reg_user_mr()
153 err = mlx4_ib_umem_write_mtt(dev, &mr->mmr.mtt, mr->umem); in mlx4_ib_reg_user_mr()
[all …]
Dsrq.c114 srq->umem = ib_umem_get(pd->uobject->context, ucmd.buf_addr, in mlx4_ib_create_srq()
116 if (IS_ERR(srq->umem)) { in mlx4_ib_create_srq()
117 err = PTR_ERR(srq->umem); in mlx4_ib_create_srq()
121 err = mlx4_mtt_init(dev->dev, ib_umem_page_count(srq->umem), in mlx4_ib_create_srq()
122 ilog2(srq->umem->page_size), &srq->mtt); in mlx4_ib_create_srq()
126 err = mlx4_ib_umem_write_mtt(dev, &srq->mtt, srq->umem); in mlx4_ib_create_srq()
205 ib_umem_release(srq->umem); in mlx4_ib_create_srq()
273 ib_umem_release(msrq->umem); in mlx4_ib_destroy_srq()
Dcq.c136 struct mlx4_ib_cq_buf *buf, struct ib_umem **umem, in mlx4_ib_get_cq_umem() argument
141 *umem = ib_umem_get(context, buf_addr, cqe * sizeof (struct mlx4_cqe), in mlx4_ib_get_cq_umem()
143 if (IS_ERR(*umem)) in mlx4_ib_get_cq_umem()
144 return PTR_ERR(*umem); in mlx4_ib_get_cq_umem()
146 err = mlx4_mtt_init(dev->dev, ib_umem_page_count(*umem), in mlx4_ib_get_cq_umem()
147 ilog2((*umem)->page_size), &buf->mtt); in mlx4_ib_get_cq_umem()
151 err = mlx4_ib_umem_write_mtt(dev, &buf->mtt, *umem); in mlx4_ib_get_cq_umem()
161 ib_umem_release(*umem); in mlx4_ib_get_cq_umem()
197 err = mlx4_ib_get_cq_umem(dev, context, &cq->buf, &cq->umem, in mlx4_ib_create_cq()
249 ib_umem_release(cq->umem); in mlx4_ib_create_cq()
[all …]
Dmlx4_ib.h77 struct ib_umem *umem; member
84 struct ib_umem *umem; member
137 struct ib_umem *umem; member
162 struct ib_umem *umem; member
268 struct ib_umem *umem);
Dqp.c500 qp->umem = ib_umem_get(pd->uobject->context, ucmd.buf_addr, in create_qp_common()
502 if (IS_ERR(qp->umem)) { in create_qp_common()
503 err = PTR_ERR(qp->umem); in create_qp_common()
507 err = mlx4_mtt_init(dev->dev, ib_umem_page_count(qp->umem), in create_qp_common()
508 ilog2(qp->umem->page_size), &qp->mtt); in create_qp_common()
512 err = mlx4_ib_umem_write_mtt(dev, &qp->mtt, qp->umem); in create_qp_common()
608 ib_umem_release(qp->umem); in create_qp_common()
712 ib_umem_release(qp->umem); in destroy_qp_common()
/linux-2.6.39/drivers/infiniband/hw/ipath/
Dipath_mr.c153 mr->umem = NULL; in ipath_reg_phys_mr()
190 struct ib_umem *umem; in ipath_reg_user_mr() local
200 umem = ib_umem_get(pd->uobject->context, start, length, in ipath_reg_user_mr()
202 if (IS_ERR(umem)) in ipath_reg_user_mr()
203 return (void *) umem; in ipath_reg_user_mr()
206 list_for_each_entry(chunk, &umem->chunk_list, list) in ipath_reg_user_mr()
212 ib_umem_release(umem); in ipath_reg_user_mr()
220 mr->mr.offset = umem->offset; in ipath_reg_user_mr()
223 mr->umem = umem; in ipath_reg_user_mr()
227 list_for_each_entry(chunk, &umem->chunk_list, list) { in ipath_reg_user_mr()
[all …]
Dipath_verbs.h270 struct ib_umem *umem; member
/linux-2.6.39/drivers/infiniband/hw/qib/
Dqib_mr.c163 mr->umem = NULL; in qib_reg_phys_mr()
200 struct ib_umem *umem; in qib_reg_user_mr() local
210 umem = ib_umem_get(pd->uobject->context, start, length, in qib_reg_user_mr()
212 if (IS_ERR(umem)) in qib_reg_user_mr()
213 return (void *) umem; in qib_reg_user_mr()
216 list_for_each_entry(chunk, &umem->chunk_list, list) in qib_reg_user_mr()
222 ib_umem_release(umem); in qib_reg_user_mr()
230 mr->mr.offset = umem->offset; in qib_reg_user_mr()
232 mr->umem = umem; in qib_reg_user_mr()
234 if (is_power_of_2(umem->page_size)) in qib_reg_user_mr()
[all …]
Dqib_verbs.h325 struct ib_umem *umem; member
/linux-2.6.39/include/rdma/
Dib_umem.h66 void ib_umem_release(struct ib_umem *umem);
67 int ib_umem_page_count(struct ib_umem *umem);
78 static inline void ib_umem_release(struct ib_umem *umem) { } in ib_umem_release() argument
79 static inline int ib_umem_page_count(struct ib_umem *umem) { return 0; } in ib_umem_page_count() argument
/linux-2.6.39/drivers/infiniband/hw/amso1100/
Dc2_provider.c403 mr->umem = NULL; in c2_reg_phys_mr()
455 c2mr->umem = ib_umem_get(pd->uobject->context, start, length, acc, 0); in c2_reg_user_mr()
456 if (IS_ERR(c2mr->umem)) { in c2_reg_user_mr()
457 err = PTR_ERR(c2mr->umem); in c2_reg_user_mr()
462 shift = ffs(c2mr->umem->page_size) - 1; in c2_reg_user_mr()
465 list_for_each_entry(chunk, &c2mr->umem->chunk_list, list) in c2_reg_user_mr()
475 list_for_each_entry(chunk, &c2mr->umem->chunk_list, list) { in c2_reg_user_mr()
481 (c2mr->umem->page_size * k); in c2_reg_user_mr()
489 c2mr->umem->page_size, in c2_reg_user_mr()
492 c2mr->umem->offset, in c2_reg_user_mr()
[all …]
Dc2_provider.h76 struct ib_umem *umem; member
/linux-2.6.39/drivers/infiniband/hw/cxgb4/
Dmem.c570 mhp->umem = ib_umem_get(pd->uobject->context, start, length, acc, 0); in c4iw_reg_user_mr()
571 if (IS_ERR(mhp->umem)) { in c4iw_reg_user_mr()
572 err = PTR_ERR(mhp->umem); in c4iw_reg_user_mr()
577 shift = ffs(mhp->umem->page_size) - 1; in c4iw_reg_user_mr()
580 list_for_each_entry(chunk, &mhp->umem->chunk_list, list) in c4iw_reg_user_mr()
595 list_for_each_entry(chunk, &mhp->umem->chunk_list, list) in c4iw_reg_user_mr()
601 mhp->umem->page_size * k); in c4iw_reg_user_mr()
641 ib_umem_release(mhp->umem); in c4iw_reg_user_mr()
800 if (mhp->umem) in c4iw_dereg_mr()
801 ib_umem_release(mhp->umem); in c4iw_dereg_mr()
Diw_cxgb4.h264 struct ib_umem *umem; member
/linux-2.6.39/drivers/infiniband/hw/mthca/
Dmthca_provider.c921 mr->umem = NULL; in mthca_get_dma_mr()
1004 mr->umem = NULL; in mthca_reg_phys_mr()
1037 mr->umem = ib_umem_get(pd->uobject->context, start, length, acc, in mthca_reg_user_mr()
1040 if (IS_ERR(mr->umem)) { in mthca_reg_user_mr()
1041 err = PTR_ERR(mr->umem); in mthca_reg_user_mr()
1045 shift = ffs(mr->umem->page_size) - 1; in mthca_reg_user_mr()
1048 list_for_each_entry(chunk, &mr->umem->chunk_list, list) in mthca_reg_user_mr()
1067 list_for_each_entry(chunk, &mr->umem->chunk_list, list) in mthca_reg_user_mr()
1072 mr->umem->page_size * k; in mthca_reg_user_mr()
1106 ib_umem_release(mr->umem); in mthca_reg_user_mr()
[all …]
Dmthca_provider.h75 struct ib_umem *umem; member
/linux-2.6.39/drivers/block/
DMakefile28 obj-$(CONFIG_BLK_DEV_UMEM) += umem.o
DKconfig172 <http://www.umem.com/>
178 module will be called umem.
180 The umem driver has not yet been allocated a MAJOR number, so
/linux-2.6.39/drivers/infiniband/hw/cxgb3/
Diwch_provider.c470 if (mhp->umem) in iwch_dereg_mr()
471 ib_umem_release(mhp->umem); in iwch_dereg_mr()
644 mhp->umem = ib_umem_get(pd->uobject->context, start, length, acc, 0); in iwch_reg_user_mr()
645 if (IS_ERR(mhp->umem)) { in iwch_reg_user_mr()
646 err = PTR_ERR(mhp->umem); in iwch_reg_user_mr()
651 shift = ffs(mhp->umem->page_size) - 1; in iwch_reg_user_mr()
654 list_for_each_entry(chunk, &mhp->umem->chunk_list, list) in iwch_reg_user_mr()
669 list_for_each_entry(chunk, &mhp->umem->chunk_list, list) in iwch_reg_user_mr()
675 mhp->umem->page_size * k); in iwch_reg_user_mr()
724 ib_umem_release(mhp->umem); in iwch_reg_user_mr()
Diwch_provider.h76 struct ib_umem *umem; member
/linux-2.6.39/drivers/infiniband/hw/ehca/
Dehca_mrmw.c361 e_mr->umem = ib_umem_get(pd->uobject->context, start, length, in ehca_reg_user_mr()
363 if (IS_ERR(e_mr->umem)) { in ehca_reg_user_mr()
364 ib_mr = (void *)e_mr->umem; in ehca_reg_user_mr()
368 if (e_mr->umem->page_size != PAGE_SIZE) { in ehca_reg_user_mr()
370 "e_mr->umem->page_size=%x", e_mr->umem->page_size); in ehca_reg_user_mr()
379 if (e_mr->umem->hugetlb) { in ehca_reg_user_mr()
401 pginfo.u.usr.region = e_mr->umem; in ehca_reg_user_mr()
402 pginfo.next_hwpage = e_mr->umem->offset / hwpage_size; in ehca_reg_user_mr()
404 (&e_mr->umem->chunk_list), in ehca_reg_user_mr()
431 ib_umem_release(e_mr->umem); in ehca_reg_user_mr()
[all …]
Dehca_classes.h271 struct ib_umem *umem; member

12