Lines Matching refs:srq

1015 	struct ib_srq *srq;
1018 srq = rdma_zalloc_drv_obj(pd->device, ib_srq);
1019 if (!srq)
1022 srq->device = pd->device;
1023 srq->pd = pd;
1024 srq->event_handler = srq_init_attr->event_handler;
1025 srq->srq_context = srq_init_attr->srq_context;
1026 srq->srq_type = srq_init_attr->srq_type;
1027 srq->uobject = uobject;
1029 if (ib_srq_has_cq(srq->srq_type)) {
1030 srq->ext.cq = srq_init_attr->ext.cq;
1031 atomic_inc(&srq->ext.cq->usecnt);
1033 if (srq->srq_type == IB_SRQT_XRC) {
1034 srq->ext.xrc.xrcd = srq_init_attr->ext.xrc.xrcd;
1035 if (srq->ext.xrc.xrcd)
1036 atomic_inc(&srq->ext.xrc.xrcd->usecnt);
1040 rdma_restrack_new(&srq->res, RDMA_RESTRACK_SRQ);
1041 rdma_restrack_parent_name(&srq->res, &pd->res);
1043 ret = pd->device->ops.create_srq(srq, srq_init_attr, udata);
1045 rdma_restrack_put(&srq->res);
1047 if (srq->srq_type == IB_SRQT_XRC && srq->ext.xrc.xrcd)
1048 atomic_dec(&srq->ext.xrc.xrcd->usecnt);
1049 if (ib_srq_has_cq(srq->srq_type))
1050 atomic_dec(&srq->ext.cq->usecnt);
1051 kfree(srq);
1055 rdma_restrack_add(&srq->res);
1057 return srq;
1061 int ib_modify_srq(struct ib_srq *srq,
1065 return srq->device->ops.modify_srq ?
1066 srq->device->ops.modify_srq(srq, srq_attr, srq_attr_mask,
1071 int ib_query_srq(struct ib_srq *srq,
1074 return srq->device->ops.query_srq ?
1075 srq->device->ops.query_srq(srq, srq_attr) : -EOPNOTSUPP;
1079 int ib_destroy_srq_user(struct ib_srq *srq, struct ib_udata *udata)
1083 if (atomic_read(&srq->usecnt))
1086 ret = srq->device->ops.destroy_srq(srq, udata);
1090 atomic_dec(&srq->pd->usecnt);
1091 if (srq->srq_type == IB_SRQT_XRC && srq->ext.xrc.xrcd)
1092 atomic_dec(&srq->ext.xrc.xrcd->usecnt);
1093 if (ib_srq_has_cq(srq->srq_type))
1094 atomic_dec(&srq->ext.cq->usecnt);
1095 rdma_restrack_del(&srq->res);
1096 kfree(srq);
1181 qp->srq = NULL;
1223 qp->srq = attr->srq;
1310 if (qp->srq)
1311 atomic_inc(&qp->srq->usecnt);
1321 if (qp->srq)
1322 atomic_dec(&qp->srq->usecnt);
2963 if (!qp->srq)