Lines Matching refs:xrcd

1032 		srq->ext.xrc.xrcd = srq_init_attr->ext.xrc.xrcd;  in ib_create_srq_user()
1033 atomic_inc(&srq->ext.xrc.xrcd->usecnt); in ib_create_srq_user()
1041 atomic_dec(&srq->ext.xrc.xrcd->usecnt); in ib_create_srq_user()
1083 atomic_dec(&srq->ext.xrc.xrcd->usecnt); in ib_destroy_srq_user()
1140 struct ib_qp *ib_open_qp(struct ib_xrcd *xrcd, in ib_open_qp() argument
1148 down_read(&xrcd->tgt_qps_rwsem); in ib_open_qp()
1149 real_qp = xa_load(&xrcd->tgt_qps, qp_open_attr->qp_num); in ib_open_qp()
1151 up_read(&xrcd->tgt_qps_rwsem); in ib_open_qp()
1156 up_read(&xrcd->tgt_qps_rwsem); in ib_open_qp()
1172 qp->xrcd = qp_init_attr->xrcd; in create_xrc_qp_user()
1173 atomic_inc(&qp_init_attr->xrcd->usecnt); in create_xrc_qp_user()
1181 err = xa_err(xa_store(&qp_init_attr->xrcd->tgt_qps, real_qp->qp_num, in create_xrc_qp_user()
1203 struct ib_device *device = pd ? pd->device : qp_init_attr->xrcd->device; in ib_create_qp()
1260 qp->xrcd = NULL; in ib_create_qp()
1895 struct ib_xrcd *xrcd; in __ib_destroy_shared_qp() local
1900 xrcd = real_qp->xrcd; in __ib_destroy_shared_qp()
1901 down_write(&xrcd->tgt_qps_rwsem); in __ib_destroy_shared_qp()
1904 xa_erase(&xrcd->tgt_qps, real_qp->qp_num); in __ib_destroy_shared_qp()
1907 up_write(&xrcd->tgt_qps_rwsem); in __ib_destroy_shared_qp()
1912 atomic_dec(&xrcd->usecnt); in __ib_destroy_shared_qp()
2322 struct ib_xrcd *xrcd; in ib_alloc_xrcd_user() local
2328 xrcd = rdma_zalloc_drv_obj(device, ib_xrcd); in ib_alloc_xrcd_user()
2329 if (!xrcd) in ib_alloc_xrcd_user()
2332 xrcd->device = device; in ib_alloc_xrcd_user()
2333 xrcd->inode = inode; in ib_alloc_xrcd_user()
2334 atomic_set(&xrcd->usecnt, 0); in ib_alloc_xrcd_user()
2335 init_rwsem(&xrcd->tgt_qps_rwsem); in ib_alloc_xrcd_user()
2336 xa_init(&xrcd->tgt_qps); in ib_alloc_xrcd_user()
2338 ret = device->ops.alloc_xrcd(xrcd, udata); in ib_alloc_xrcd_user()
2341 return xrcd; in ib_alloc_xrcd_user()
2343 kfree(xrcd); in ib_alloc_xrcd_user()
2353 int ib_dealloc_xrcd_user(struct ib_xrcd *xrcd, struct ib_udata *udata) in ib_dealloc_xrcd_user() argument
2357 if (atomic_read(&xrcd->usecnt)) in ib_dealloc_xrcd_user()
2360 WARN_ON(!xa_empty(&xrcd->tgt_qps)); in ib_dealloc_xrcd_user()
2361 ret = xrcd->device->ops.dealloc_xrcd(xrcd, udata); in ib_dealloc_xrcd_user()
2364 kfree(xrcd); in ib_dealloc_xrcd_user()