Lines Matching refs:srq
1013 struct ib_srq *srq; in ib_create_srq_user() local
1016 srq = rdma_zalloc_drv_obj(pd->device, ib_srq); in ib_create_srq_user()
1017 if (!srq) in ib_create_srq_user()
1020 srq->device = pd->device; in ib_create_srq_user()
1021 srq->pd = pd; in ib_create_srq_user()
1022 srq->event_handler = srq_init_attr->event_handler; in ib_create_srq_user()
1023 srq->srq_context = srq_init_attr->srq_context; in ib_create_srq_user()
1024 srq->srq_type = srq_init_attr->srq_type; in ib_create_srq_user()
1025 srq->uobject = uobject; in ib_create_srq_user()
1027 if (ib_srq_has_cq(srq->srq_type)) { in ib_create_srq_user()
1028 srq->ext.cq = srq_init_attr->ext.cq; in ib_create_srq_user()
1029 atomic_inc(&srq->ext.cq->usecnt); in ib_create_srq_user()
1031 if (srq->srq_type == IB_SRQT_XRC) { in ib_create_srq_user()
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()
1037 ret = pd->device->ops.create_srq(srq, srq_init_attr, udata); in ib_create_srq_user()
1039 atomic_dec(&srq->pd->usecnt); in ib_create_srq_user()
1040 if (srq->srq_type == IB_SRQT_XRC) in ib_create_srq_user()
1041 atomic_dec(&srq->ext.xrc.xrcd->usecnt); in ib_create_srq_user()
1042 if (ib_srq_has_cq(srq->srq_type)) in ib_create_srq_user()
1043 atomic_dec(&srq->ext.cq->usecnt); in ib_create_srq_user()
1044 kfree(srq); in ib_create_srq_user()
1048 return srq; in ib_create_srq_user()
1052 int ib_modify_srq(struct ib_srq *srq, in ib_modify_srq() argument
1056 return srq->device->ops.modify_srq ? in ib_modify_srq()
1057 srq->device->ops.modify_srq(srq, srq_attr, srq_attr_mask, in ib_modify_srq()
1062 int ib_query_srq(struct ib_srq *srq, in ib_query_srq() argument
1065 return srq->device->ops.query_srq ? in ib_query_srq()
1066 srq->device->ops.query_srq(srq, srq_attr) : -EOPNOTSUPP; in ib_query_srq()
1070 int ib_destroy_srq_user(struct ib_srq *srq, struct ib_udata *udata) in ib_destroy_srq_user() argument
1074 if (atomic_read(&srq->usecnt)) in ib_destroy_srq_user()
1077 ret = srq->device->ops.destroy_srq(srq, udata); in ib_destroy_srq_user()
1081 atomic_dec(&srq->pd->usecnt); in ib_destroy_srq_user()
1082 if (srq->srq_type == IB_SRQT_XRC) in ib_destroy_srq_user()
1083 atomic_dec(&srq->ext.xrc.xrcd->usecnt); in ib_destroy_srq_user()
1084 if (ib_srq_has_cq(srq->srq_type)) in ib_destroy_srq_user()
1085 atomic_dec(&srq->ext.cq->usecnt); in ib_destroy_srq_user()
1086 kfree(srq); in ib_destroy_srq_user()
1171 qp->srq = NULL; in create_xrc_qp_user()
1209 qp_init_attr->srq || qp_init_attr->cap.max_recv_wr || in ib_create_qp()
1249 qp->srq = NULL; in ib_create_qp()
1254 qp->srq = qp_init_attr->srq; in ib_create_qp()
1255 if (qp->srq) in ib_create_qp()
1256 atomic_inc(&qp_init_attr->srq->usecnt); in ib_create_qp()
1924 struct ib_srq *srq; in ib_destroy_qp_user() local
1940 srq = qp->srq; in ib_destroy_qp_user()
1963 if (srq) in ib_destroy_qp_user()
1964 atomic_dec(&srq->usecnt); in ib_destroy_qp_user()
2840 if (!qp->srq) in ib_drain_qp()