Lines Matching refs:srq
240 struct ib_srq *srq;
245 srq = pd->device->create_srq(pd, srq_init_attr, NULL);
247 if (!IS_ERR(srq)) {
248 srq->device = pd->device;
249 srq->pd = pd;
250 srq->uobject = NULL;
251 srq->event_handler = srq_init_attr->event_handler;
252 srq->srq_context = srq_init_attr->srq_context;
253 srq->ext.xrc.cq = NULL;
254 srq->ext.xrc.xrcd = NULL;
256 atomic_set(&srq->usecnt, 0);
259 return srq;
268 struct ib_srq *srq;
273 srq = pd->device->create_xrc_srq(pd, xrc_cq, xrcd, srq_init_attr, NULL);
275 if (!IS_ERR(srq)) {
276 srq->device = pd->device;
277 srq->pd = pd;
278 srq->uobject = NULL;
279 srq->event_handler = srq_init_attr->event_handler;
280 srq->srq_context = srq_init_attr->srq_context;
281 srq->ext.xrc.cq = xrc_cq;
282 srq->ext.xrc.xrcd = xrcd;
286 atomic_set(&srq->usecnt, 0);
289 return srq;
293 int ib_modify_srq(struct ib_srq *srq,
297 return srq->device->modify_srq ?
298 srq->device->modify_srq(srq, srq_attr, srq_attr_mask, NULL) :
303 int ib_query_srq(struct ib_srq *srq,
306 return srq->device->query_srq ?
307 srq->device->query_srq(srq, srq_attr) : -ENOSYS;
311 int ib_destroy_srq(struct ib_srq *srq)
318 if (atomic_read(&srq->usecnt))
321 pd = srq->pd;
322 xrc_cq = srq->ext.xrc.cq;
323 xrcd = srq->ext.xrc.xrcd;
325 ret = srq->device->destroy_srq(srq);
352 qp->srq = qp_init_attr->srq;
362 if (qp_init_attr->srq)
363 atomic_inc(&qp_init_attr->srq->usecnt);
695 struct ib_srq *srq;
703 srq = qp->srq;
711 if (srq)
712 atomic_dec(&srq->usecnt);