Lines Matching refs:pd

231 	struct ib_pd *pd;  in ib_alloc_pd()  local
239 pd = device->alloc_pd(device, NULL, NULL); in ib_alloc_pd()
240 if (IS_ERR(pd)) in ib_alloc_pd()
241 return pd; in ib_alloc_pd()
243 pd->device = device; in ib_alloc_pd()
244 pd->uobject = NULL; in ib_alloc_pd()
245 pd->local_mr = NULL; in ib_alloc_pd()
246 atomic_set(&pd->usecnt, 0); in ib_alloc_pd()
249 pd->local_dma_lkey = device->local_dma_lkey; in ib_alloc_pd()
253 mr = ib_get_dma_mr(pd, IB_ACCESS_LOCAL_WRITE); in ib_alloc_pd()
255 ib_dealloc_pd(pd); in ib_alloc_pd()
259 pd->local_mr = mr; in ib_alloc_pd()
260 pd->local_dma_lkey = pd->local_mr->lkey; in ib_alloc_pd()
262 return pd; in ib_alloc_pd()
274 void ib_dealloc_pd(struct ib_pd *pd) in ib_dealloc_pd() argument
278 if (pd->local_mr) { in ib_dealloc_pd()
279 ret = ib_dereg_mr(pd->local_mr); in ib_dealloc_pd()
281 pd->local_mr = NULL; in ib_dealloc_pd()
286 WARN_ON(atomic_read(&pd->usecnt)); in ib_dealloc_pd()
290 ret = pd->device->dealloc_pd(pd); in ib_dealloc_pd()
297 struct ib_ah *ib_create_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr) in ib_create_ah() argument
301 ah = pd->device->create_ah(pd, ah_attr); in ib_create_ah()
304 ah->device = pd->device; in ib_create_ah()
305 ah->pd = pd; in ib_create_ah()
307 atomic_inc(&pd->usecnt); in ib_create_ah()
406 struct ib_ah *ib_create_ah_from_wc(struct ib_pd *pd, const struct ib_wc *wc, in ib_create_ah_from_wc() argument
412 ret = ib_init_ah_from_wc(pd->device, port_num, wc, grh, &ah_attr); in ib_create_ah_from_wc()
416 return ib_create_ah(pd, &ah_attr); in ib_create_ah_from_wc()
438 struct ib_pd *pd; in ib_destroy_ah() local
441 pd = ah->pd; in ib_destroy_ah()
444 atomic_dec(&pd->usecnt); in ib_destroy_ah()
452 struct ib_srq *ib_create_srq(struct ib_pd *pd, in ib_create_srq() argument
457 if (!pd->device->create_srq) in ib_create_srq()
460 srq = pd->device->create_srq(pd, srq_init_attr, NULL); in ib_create_srq()
463 srq->device = pd->device; in ib_create_srq()
464 srq->pd = pd; in ib_create_srq()
475 atomic_inc(&pd->usecnt); in ib_create_srq()
503 struct ib_pd *pd; in ib_destroy_srq() local
512 pd = srq->pd; in ib_destroy_srq()
521 atomic_dec(&pd->usecnt); in ib_destroy_srq()
601 struct ib_qp *ib_create_qp(struct ib_pd *pd, in ib_create_qp() argument
607 device = pd ? pd->device : qp_init_attr->xrcd->device; in ib_create_qp()
608 qp = device->create_qp(pd, qp_init_attr, NULL); in ib_create_qp()
620 qp->pd = NULL; in ib_create_qp()
648 qp->pd = pd; in ib_create_qp()
652 atomic_inc(&pd->usecnt); in ib_create_qp()
1120 struct ib_pd *pd; in ib_destroy_qp() local
1131 pd = qp->pd; in ib_destroy_qp()
1138 if (pd) in ib_destroy_qp()
1139 atomic_dec(&pd->usecnt); in ib_destroy_qp()
1202 struct ib_mr *ib_get_dma_mr(struct ib_pd *pd, int mr_access_flags) in ib_get_dma_mr() argument
1211 mr = pd->device->get_dma_mr(pd, mr_access_flags); in ib_get_dma_mr()
1214 mr->device = pd->device; in ib_get_dma_mr()
1215 mr->pd = pd; in ib_get_dma_mr()
1217 atomic_inc(&pd->usecnt); in ib_get_dma_mr()
1234 struct ib_pd *pd; in ib_dereg_mr() local
1240 pd = mr->pd; in ib_dereg_mr()
1243 atomic_dec(&pd->usecnt); in ib_dereg_mr()
1261 struct ib_mr *ib_alloc_mr(struct ib_pd *pd, in ib_alloc_mr() argument
1267 if (!pd->device->alloc_mr) in ib_alloc_mr()
1270 mr = pd->device->alloc_mr(pd, mr_type, max_num_sg); in ib_alloc_mr()
1272 mr->device = pd->device; in ib_alloc_mr()
1273 mr->pd = pd; in ib_alloc_mr()
1275 atomic_inc(&pd->usecnt); in ib_alloc_mr()
1285 struct ib_mw *ib_alloc_mw(struct ib_pd *pd, enum ib_mw_type type) in ib_alloc_mw() argument
1289 if (!pd->device->alloc_mw) in ib_alloc_mw()
1292 mw = pd->device->alloc_mw(pd, type); in ib_alloc_mw()
1294 mw->device = pd->device; in ib_alloc_mw()
1295 mw->pd = pd; in ib_alloc_mw()
1298 atomic_inc(&pd->usecnt); in ib_alloc_mw()
1307 struct ib_pd *pd; in ib_dealloc_mw() local
1310 pd = mw->pd; in ib_dealloc_mw()
1313 atomic_dec(&pd->usecnt); in ib_dealloc_mw()
1321 struct ib_fmr *ib_alloc_fmr(struct ib_pd *pd, in ib_alloc_fmr() argument
1327 if (!pd->device->alloc_fmr) in ib_alloc_fmr()
1330 fmr = pd->device->alloc_fmr(pd, mr_access_flags, fmr_attr); in ib_alloc_fmr()
1332 fmr->device = pd->device; in ib_alloc_fmr()
1333 fmr->pd = pd; in ib_alloc_fmr()
1334 atomic_inc(&pd->usecnt); in ib_alloc_fmr()
1355 struct ib_pd *pd; in ib_dealloc_fmr() local
1358 pd = fmr->pd; in ib_dealloc_fmr()
1361 atomic_dec(&pd->usecnt); in ib_dealloc_fmr()