xrcd 241 drivers/infiniband/core/uverbs.h int ib_uverbs_dealloc_xrcd(struct ib_uobject *uobject, struct ib_xrcd *xrcd, xrcd 473 drivers/infiniband/core/uverbs_cmd.c struct ib_xrcd *xrcd; xrcd 479 drivers/infiniband/core/uverbs_cmd.c struct ib_xrcd *xrcd) xrcd 489 drivers/infiniband/core/uverbs_cmd.c entry->xrcd = xrcd; xrcd 540 drivers/infiniband/core/uverbs_cmd.c return entry->xrcd; xrcd 562 drivers/infiniband/core/uverbs_cmd.c struct ib_xrcd *xrcd = NULL; xrcd 584 drivers/infiniband/core/uverbs_cmd.c xrcd = find_xrcd(ibudev, inode); xrcd 585 drivers/infiniband/core/uverbs_cmd.c if (!xrcd && !(cmd.oflags & O_CREAT)) { xrcd 591 drivers/infiniband/core/uverbs_cmd.c if (xrcd && cmd.oflags & O_EXCL) { xrcd 604 drivers/infiniband/core/uverbs_cmd.c if (!xrcd) { xrcd 605 drivers/infiniband/core/uverbs_cmd.c xrcd = ib_dev->ops.alloc_xrcd(ib_dev, &attrs->driver_udata); xrcd 606 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(xrcd)) { xrcd 607 drivers/infiniband/core/uverbs_cmd.c ret = PTR_ERR(xrcd); xrcd 611 drivers/infiniband/core/uverbs_cmd.c xrcd->inode = inode; xrcd 612 drivers/infiniband/core/uverbs_cmd.c xrcd->device = ib_dev; xrcd 613 drivers/infiniband/core/uverbs_cmd.c atomic_set(&xrcd->usecnt, 0); xrcd 614 drivers/infiniband/core/uverbs_cmd.c mutex_init(&xrcd->tgt_qp_mutex); xrcd 615 drivers/infiniband/core/uverbs_cmd.c INIT_LIST_HEAD(&xrcd->tgt_qp_list); xrcd 620 drivers/infiniband/core/uverbs_cmd.c obj->uobject.object = xrcd; xrcd 627 drivers/infiniband/core/uverbs_cmd.c ret = xrcd_table_insert(ibudev, inode, xrcd); xrcd 631 drivers/infiniband/core/uverbs_cmd.c atomic_inc(&xrcd->usecnt); xrcd 649 drivers/infiniband/core/uverbs_cmd.c atomic_dec(&xrcd->usecnt); xrcd 653 drivers/infiniband/core/uverbs_cmd.c ib_dealloc_xrcd(xrcd, uverbs_get_cleared_udata(attrs)); xrcd 679 drivers/infiniband/core/uverbs_cmd.c int ib_uverbs_dealloc_xrcd(struct ib_uobject *uobject, struct ib_xrcd *xrcd, xrcd 687 drivers/infiniband/core/uverbs_cmd.c inode = xrcd->inode; xrcd 688 drivers/infiniband/core/uverbs_cmd.c if (inode && !atomic_dec_and_test(&xrcd->usecnt)) xrcd 691 drivers/infiniband/core/uverbs_cmd.c ret = ib_dealloc_xrcd(xrcd, &attrs->driver_udata); xrcd 694 drivers/infiniband/core/uverbs_cmd.c atomic_inc(&xrcd->usecnt); xrcd 1275 drivers/infiniband/core/uverbs_cmd.c struct ib_xrcd *xrcd = NULL; xrcd 1327 drivers/infiniband/core/uverbs_cmd.c xrcd = (struct ib_xrcd *)xrcd_uobj->object; xrcd 1328 drivers/infiniband/core/uverbs_cmd.c if (!xrcd) { xrcd 1332 drivers/infiniband/core/uverbs_cmd.c device = xrcd->device; xrcd 1380 drivers/infiniband/core/uverbs_cmd.c attr.xrcd = xrcd; xrcd 1464 drivers/infiniband/core/uverbs_cmd.c if (xrcd) { xrcd 1555 drivers/infiniband/core/uverbs_cmd.c struct ib_xrcd *xrcd; xrcd 1577 drivers/infiniband/core/uverbs_cmd.c xrcd = (struct ib_xrcd *)xrcd_uobj->object; xrcd 1578 drivers/infiniband/core/uverbs_cmd.c if (!xrcd) { xrcd 1592 drivers/infiniband/core/uverbs_cmd.c qp = ib_open_qp(xrcd, &attr); xrcd 3381 drivers/infiniband/core/uverbs_cmd.c attr.ext.xrc.xrcd = (struct ib_xrcd *)xrcd_uobj->object; xrcd 3382 drivers/infiniband/core/uverbs_cmd.c if (!attr.ext.xrc.xrcd) { xrcd 3439 drivers/infiniband/core/uverbs_cmd.c srq->ext.xrc.xrcd = attr.ext.xrc.xrcd; xrcd 3440 drivers/infiniband/core/uverbs_cmd.c atomic_inc(&attr.ext.xrc.xrcd->usecnt); xrcd 174 drivers/infiniband/core/uverbs_std_types.c struct ib_xrcd *xrcd = uobject->object; xrcd 184 drivers/infiniband/core/uverbs_std_types.c ret = ib_uverbs_dealloc_xrcd(uobject, xrcd, why, attrs); xrcd 991 drivers/infiniband/core/verbs.c srq->ext.xrc.xrcd = srq_init_attr->ext.xrc.xrcd; xrcd 992 drivers/infiniband/core/verbs.c atomic_inc(&srq->ext.xrc.xrcd->usecnt); xrcd 1000 drivers/infiniband/core/verbs.c atomic_dec(&srq->ext.xrc.xrcd->usecnt); xrcd 1038 drivers/infiniband/core/verbs.c atomic_dec(&srq->ext.xrc.xrcd->usecnt); xrcd 1061 drivers/infiniband/core/verbs.c static void __ib_insert_xrcd_qp(struct ib_xrcd *xrcd, struct ib_qp *qp) xrcd 1063 drivers/infiniband/core/verbs.c mutex_lock(&xrcd->tgt_qp_mutex); xrcd 1064 drivers/infiniband/core/verbs.c list_add(&qp->xrcd_list, &xrcd->tgt_qp_list); xrcd 1065 drivers/infiniband/core/verbs.c mutex_unlock(&xrcd->tgt_qp_mutex); xrcd 1102 drivers/infiniband/core/verbs.c struct ib_qp *ib_open_qp(struct ib_xrcd *xrcd, xrcd 1111 drivers/infiniband/core/verbs.c mutex_lock(&xrcd->tgt_qp_mutex); xrcd 1112 drivers/infiniband/core/verbs.c list_for_each_entry(real_qp, &xrcd->tgt_qp_list, xrcd_list) { xrcd 1119 drivers/infiniband/core/verbs.c mutex_unlock(&xrcd->tgt_qp_mutex); xrcd 1135 drivers/infiniband/core/verbs.c qp->xrcd = qp_init_attr->xrcd; xrcd 1136 drivers/infiniband/core/verbs.c atomic_inc(&qp_init_attr->xrcd->usecnt); xrcd 1144 drivers/infiniband/core/verbs.c __ib_insert_xrcd_qp(qp_init_attr->xrcd, real_qp); xrcd 1152 drivers/infiniband/core/verbs.c struct ib_device *device = pd ? pd->device : qp_init_attr->xrcd->device; xrcd 1209 drivers/infiniband/core/verbs.c qp->xrcd = NULL; xrcd 1830 drivers/infiniband/core/verbs.c struct ib_xrcd *xrcd; xrcd 1835 drivers/infiniband/core/verbs.c xrcd = real_qp->xrcd; xrcd 1837 drivers/infiniband/core/verbs.c mutex_lock(&xrcd->tgt_qp_mutex); xrcd 1843 drivers/infiniband/core/verbs.c mutex_unlock(&xrcd->tgt_qp_mutex); xrcd 1848 drivers/infiniband/core/verbs.c atomic_dec(&xrcd->usecnt); xrcd 1850 drivers/infiniband/core/verbs.c __ib_insert_xrcd_qp(xrcd, real_qp); xrcd 2221 drivers/infiniband/core/verbs.c struct ib_xrcd *xrcd; xrcd 2226 drivers/infiniband/core/verbs.c xrcd = device->ops.alloc_xrcd(device, NULL); xrcd 2227 drivers/infiniband/core/verbs.c if (!IS_ERR(xrcd)) { xrcd 2228 drivers/infiniband/core/verbs.c xrcd->device = device; xrcd 2229 drivers/infiniband/core/verbs.c xrcd->inode = NULL; xrcd 2230 drivers/infiniband/core/verbs.c atomic_set(&xrcd->usecnt, 0); xrcd 2231 drivers/infiniband/core/verbs.c mutex_init(&xrcd->tgt_qp_mutex); xrcd 2232 drivers/infiniband/core/verbs.c INIT_LIST_HEAD(&xrcd->tgt_qp_list); xrcd 2235 drivers/infiniband/core/verbs.c return xrcd; xrcd 2239 drivers/infiniband/core/verbs.c int ib_dealloc_xrcd(struct ib_xrcd *xrcd, struct ib_udata *udata) xrcd 2244 drivers/infiniband/core/verbs.c if (atomic_read(&xrcd->usecnt)) xrcd 2247 drivers/infiniband/core/verbs.c while (!list_empty(&xrcd->tgt_qp_list)) { xrcd 2248 drivers/infiniband/core/verbs.c qp = list_entry(xrcd->tgt_qp_list.next, struct ib_qp, xrcd_list); xrcd 2253 drivers/infiniband/core/verbs.c mutex_destroy(&xrcd->tgt_qp_mutex); xrcd 2255 drivers/infiniband/core/verbs.c return xrcd->device->ops.dealloc_xrcd(xrcd, udata); xrcd 982 drivers/infiniband/hw/hns/hns_roce_device.h struct hns_roce_srq *srq, u32 pdn, u16 xrcd, u32 cqn, xrcd 6028 drivers/infiniband/hw/hns/hns_roce_hw_v2.c struct hns_roce_srq *srq, u32 pdn, u16 xrcd, xrcd 6057 drivers/infiniband/hw/hns/hns_roce_hw_v2.c SRQC_BYTE_12_SRQ_XRCD_S, xrcd); xrcd 81 drivers/infiniband/hw/hns/hns_roce_srq.c u16 xrcd, struct hns_roce_mtt *hr_mtt, xrcd 133 drivers/infiniband/hw/hns/hns_roce_srq.c hr_dev->hw->write_srqc(hr_dev, srq, pdn, xrcd, cqn, mailbox->buf, xrcd 1219 drivers/infiniband/hw/mlx4/main.c struct mlx4_ib_xrcd *xrcd; xrcd 1226 drivers/infiniband/hw/mlx4/main.c xrcd = kmalloc(sizeof *xrcd, GFP_KERNEL); xrcd 1227 drivers/infiniband/hw/mlx4/main.c if (!xrcd) xrcd 1230 drivers/infiniband/hw/mlx4/main.c err = mlx4_xrcd_alloc(to_mdev(ibdev)->dev, &xrcd->xrcdn); xrcd 1234 drivers/infiniband/hw/mlx4/main.c xrcd->pd = ib_alloc_pd(ibdev, 0); xrcd 1235 drivers/infiniband/hw/mlx4/main.c if (IS_ERR(xrcd->pd)) { xrcd 1236 drivers/infiniband/hw/mlx4/main.c err = PTR_ERR(xrcd->pd); xrcd 1241 drivers/infiniband/hw/mlx4/main.c xrcd->cq = ib_create_cq(ibdev, NULL, NULL, xrcd, &cq_attr); xrcd 1242 drivers/infiniband/hw/mlx4/main.c if (IS_ERR(xrcd->cq)) { xrcd 1243 drivers/infiniband/hw/mlx4/main.c err = PTR_ERR(xrcd->cq); xrcd 1247 drivers/infiniband/hw/mlx4/main.c return &xrcd->ibxrcd; xrcd 1250 drivers/infiniband/hw/mlx4/main.c ib_dealloc_pd(xrcd->pd); xrcd 1252 drivers/infiniband/hw/mlx4/main.c mlx4_xrcd_free(to_mdev(ibdev)->dev, xrcd->xrcdn); xrcd 1254 drivers/infiniband/hw/mlx4/main.c kfree(xrcd); xrcd 1258 drivers/infiniband/hw/mlx4/main.c static int mlx4_ib_dealloc_xrcd(struct ib_xrcd *xrcd, struct ib_udata *udata) xrcd 1260 drivers/infiniband/hw/mlx4/main.c ib_destroy_cq(to_mxrcd(xrcd)->cq); xrcd 1261 drivers/infiniband/hw/mlx4/main.c ib_dealloc_pd(to_mxrcd(xrcd)->pd); xrcd 1262 drivers/infiniband/hw/mlx4/main.c mlx4_xrcd_free(to_mdev(xrcd->device)->dev, to_mxrcd(xrcd)->xrcdn); xrcd 1263 drivers/infiniband/hw/mlx4/main.c kfree(xrcd); xrcd 1360 drivers/infiniband/hw/mlx4/qp.c return to_mpd(to_mxrcd(qp->ibqp.xrcd)->pd); xrcd 1370 drivers/infiniband/hw/mlx4/qp.c *send_cq = to_mcq(to_mxrcd(qp->ibqp.xrcd)->cq); xrcd 1578 drivers/infiniband/hw/mlx4/qp.c pd = to_mxrcd(init_attr->xrcd)->pd; xrcd 1579 drivers/infiniband/hw/mlx4/qp.c xrcdn = to_mxrcd(init_attr->xrcd)->xrcdn; xrcd 1580 drivers/infiniband/hw/mlx4/qp.c init_attr->send_cq = to_mxrcd(init_attr->xrcd)->cq; xrcd 1648 drivers/infiniband/hw/mlx4/qp.c struct ib_device *device = pd ? pd->device : init_attr->xrcd->device; xrcd 2247 drivers/infiniband/hw/mlx4/qp.c context->xrcd = cpu_to_be32((u32) qp->xrcdn); xrcd 177 drivers/infiniband/hw/mlx4/srq.c to_mxrcd(init_attr->ext.xrc.xrcd)->xrcdn : xrcd 317 drivers/infiniband/hw/mlx5/cmd.c *xrcdn = MLX5_GET(alloc_xrcd_out, out, xrcd); xrcd 327 drivers/infiniband/hw/mlx5/cmd.c MLX5_SET(dealloc_xrcd_in, in, xrcd, xrcdn); xrcd 177 drivers/infiniband/hw/mlx5/cq.c if (qp->ibqp.srq || qp->ibqp.xrcd) { xrcd 180 drivers/infiniband/hw/mlx5/cq.c if (qp->ibqp.xrcd) { xrcd 4993 drivers/infiniband/hw/mlx5/main.c attr.ext.xrc.xrcd = devr->x0; xrcd 5004 drivers/infiniband/hw/mlx5/main.c devr->s0->ext.xrc.xrcd = devr->x0; xrcd 5010 drivers/infiniband/hw/mlx5/main.c atomic_inc(&devr->s0->ext.xrc.xrcd->usecnt); xrcd 1188 drivers/infiniband/hw/mlx5/mlx5_ib.h int mlx5_ib_dealloc_xrcd(struct ib_xrcd *xrcd, struct ib_udata *udata); xrcd 2226 drivers/infiniband/hw/mlx5/qp.c MLX5_SET(qpc, qpc, xrcd, to_mxrcd(init_attr->xrcd)->xrcdn); xrcd 2230 drivers/infiniband/hw/mlx5/qp.c MLX5_SET(qpc, qpc, xrcd, to_mxrcd(devr->x1)->xrcdn); xrcd 2235 drivers/infiniband/hw/mlx5/qp.c MLX5_SET(qpc, qpc, xrcd, to_mxrcd(devr->x0)->xrcdn); xrcd 2238 drivers/infiniband/hw/mlx5/qp.c MLX5_SET(qpc, qpc, xrcd, to_mxrcd(devr->x1)->xrcdn); xrcd 2660 drivers/infiniband/hw/mlx5/qp.c dev = to_mdev(to_mxrcd(init_attr->xrcd)->ibxrcd.device); xrcd 2692 drivers/infiniband/hw/mlx5/qp.c xrcdn = to_mxrcd(init_attr->xrcd)->xrcdn; xrcd 5842 drivers/infiniband/hw/mlx5/qp.c struct mlx5_ib_xrcd *xrcd; xrcd 5848 drivers/infiniband/hw/mlx5/qp.c xrcd = kmalloc(sizeof(*xrcd), GFP_KERNEL); xrcd 5849 drivers/infiniband/hw/mlx5/qp.c if (!xrcd) xrcd 5852 drivers/infiniband/hw/mlx5/qp.c err = mlx5_cmd_xrcd_alloc(dev->mdev, &xrcd->xrcdn, 0); xrcd 5854 drivers/infiniband/hw/mlx5/qp.c kfree(xrcd); xrcd 5858 drivers/infiniband/hw/mlx5/qp.c return &xrcd->ibxrcd; xrcd 5861 drivers/infiniband/hw/mlx5/qp.c int mlx5_ib_dealloc_xrcd(struct ib_xrcd *xrcd, struct ib_udata *udata) xrcd 5863 drivers/infiniband/hw/mlx5/qp.c struct mlx5_ib_dev *dev = to_mdev(xrcd->device); xrcd 5864 drivers/infiniband/hw/mlx5/qp.c u32 xrcdn = to_mxrcd(xrcd)->xrcdn; xrcd 5871 drivers/infiniband/hw/mlx5/qp.c kfree(xrcd); xrcd 278 drivers/infiniband/hw/mlx5/srq.c in.xrcd = to_mxrcd(init_attr->ext.xrc.xrcd)->xrcdn; xrcd 280 drivers/infiniband/hw/mlx5/srq.c in.xrcd = to_mxrcd(dev->devr.x0)->xrcdn; xrcd 23 drivers/infiniband/hw/mlx5/srq.h u32 xrcd; xrcd 51 drivers/infiniband/hw/mlx5/srq_cmd.c MLX5_SET(srqc, srqc, xrcd, in->xrcd); xrcd 992 drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c init_attr->xrcd = NULL; xrcd 367 drivers/net/ethernet/mellanox/mlx4/mlx4.h __be16 xrcd; xrcd 5223 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c struct res_xrcdn *xrcd; xrcd 5234 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c list_for_each_entry_safe(xrcd, tmp, xrcdn_list, com.list) { xrcd 5235 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c if (xrcd->com.owner == slave) { xrcd 5236 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c xrcdn = xrcd->com.res_id; xrcd 5237 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c rb_erase(&xrcd->com.node, &tracker->res_tree[RES_XRCD]); xrcd 5238 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c list_del(&xrcd->com.list); xrcd 5239 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c kfree(xrcd); xrcd 162 drivers/net/ethernet/mellanox/mlx4/srq.c int mlx4_srq_alloc(struct mlx4_dev *dev, u32 pdn, u32 cqn, u16 xrcd, xrcd 191 drivers/net/ethernet/mellanox/mlx4/srq.c srq_context->xrcd = cpu_to_be16(xrcd); xrcd 579 drivers/net/ethernet/mellanox/mlx5/core/qp.c *xrcdn = MLX5_GET(alloc_xrcd_out, out, xrcd); xrcd 590 drivers/net/ethernet/mellanox/mlx5/core/qp.c MLX5_SET(dealloc_xrcd_in, in, xrcd, xrcdn); xrcd 848 include/linux/mlx4/device.h int xrcd; xrcd 214 include/linux/mlx4/qp.h __be32 xrcd; xrcd 2688 include/linux/mlx5/mlx5_ifc.h u8 xrcd[0x18]; xrcd 2839 include/linux/mlx5/mlx5_ifc.h u8 xrcd[0x18]; xrcd 2998 include/linux/mlx5/mlx5_ifc.h u8 xrcd[0x18]; xrcd 7087 include/linux/mlx5/mlx5_ifc.h u8 xrcd[0x18]; xrcd 7919 include/linux/mlx5/mlx5_ifc.h u8 xrcd[0x18]; xrcd 536 include/linux/mlx5/qp.h __be32 xrcd; xrcd 1034 include/rdma/ib_verbs.h struct ib_xrcd *xrcd; xrcd 1130 include/rdma/ib_verbs.h struct ib_xrcd *xrcd; /* XRC TGT QPs only */ xrcd 1577 include/rdma/ib_verbs.h struct ib_xrcd *xrcd; xrcd 1721 include/rdma/ib_verbs.h struct ib_xrcd *xrcd; /* XRC TGT QPs only */ xrcd 2430 include/rdma/ib_verbs.h int (*dealloc_xrcd)(struct ib_xrcd *xrcd, struct ib_udata *udata); xrcd 3672 include/rdma/ib_verbs.h struct ib_qp *ib_open_qp(struct ib_xrcd *xrcd, xrcd 4246 include/rdma/ib_verbs.h int ib_dealloc_xrcd(struct ib_xrcd *xrcd, struct ib_udata *udata);