]> git.openfabrics.org - ~shefty/libibverbs.git/commitdiff
Refresh of srq_ex
authorSean Hefty <sean.hefty@intel.com>
Wed, 26 Sep 2012 16:53:40 +0000 (09:53 -0700)
committerSean Hefty <sean.hefty@intel.com>
Wed, 26 Sep 2012 16:53:40 +0000 (09:53 -0700)
src/cmd.c
src/verbs.c

index 0407cf07ecee07331aec516eb759ffe9641c3add..716ff339309e27844dccd4797690f0b492fcd1fa 100644 (file)
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -506,15 +506,20 @@ int ibv_cmd_create_srq_ex(struct ibv_pd *pd,
        VALGRIND_MAKE_MEM_DEFINED(resp, resp_size);
 
        srq->handle  = resp->srq_handle;
-       srq->context = pd->context;
-       if (cmd->srq_type == IBV_SRQT_XRC) {
-               srq->comp_mask |= IBV_SRQ_NUM;
-               srq->srq_num = resp->srqn;
-       }
+       srq->context          = pd->context;
+       srq->srq_context      = srq_init_attr_ex->srq_context;
+       srq->pd               = pd;
+       srq->events_completed = 0;
+       pthread_mutex_init(&srq->mutex, NULL);
+       pthread_cond_init(&srq->cond, NULL);
 
        srq->comp_mask |= IBV_SRQ_INIT_ATTR_TYPE;
        srq->srq_type = (srq_init_attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_TYPE) ?
                        srq_init_attr_ex->srq_type : IBV_SRQT_BASIC;
+       if (srq->srq_type == IBV_SRQT_XRC) {
+               srq->comp_mask |= IBV_SRQ_NUM;
+               srq->srq_num = resp->srqn;
+       }
        if (srq_init_attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_XRCD) {
                srq->comp_mask |= IBV_SRQ_XRCD;
                srq->xrcd = srq_init_attr_ex->xrcd;
index eb98f2429a3652095cac2673ea008e95cd3c3aea..b5938f2b6a5dc06cc9236bc19dc554fe762d5b63 100644 (file)
@@ -353,59 +353,18 @@ void __ibv_ack_cq_events(struct ibv_cq *cq, unsigned int nevents)
 }
 default_symver(__ibv_ack_cq_events, ibv_ack_cq_events);
 
-struct ibv_srq *__ibv_create_srq_ex(struct ibv_pd *pd,
-                                   struct ibv_srq_init_attr_ex *srq_init_attr_ex)
-{
-       struct verbs_context *context_ex = verbs_get_ctx(pd->context);
-       struct ibv_srq *srq;
-
-       if (srq_init_attr_ex->comp_mask) {
-               if (!context_ex->create_srq_ex ||
-                   srq_init_attr_ex->comp_mask >= IBV_SRQ_INIT_ATTR_RESERVED) {
-                       errno = ENOSYS;
-                       return NULL;
-               }
-
-               srq = context_ex->create_srq_ex(pd, srq_init_attr_ex);
-       } else {
-               srq = pd->context->ops.create_srq(pd, (struct ibv_srq_init_attr *)
-                                                     srq_init_attr_ex);
-       }
-
-       if (srq) {
-               srq->context          = pd->context;
-               srq->srq_context      = srq_init_attr_ex->srq_context;
-               srq->pd               = pd;
-               srq->events_completed = 0;
-               pthread_mutex_init(&srq->mutex, NULL);
-               pthread_cond_init(&srq->cond, NULL);
-
-               srq->comp_mask |= IBV_SRQ_INIT_ATTR_TYPE;
-               srq->srq_type = (srq_init_attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_TYPE) ?
-                               srq_init_attr_ex->srq_type : IBV_SRQT_BASIC;
-               if (srq_init_attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_XRCD) {
-                       srq->comp_mask |= IBV_SRQ_XRCD;
-                       srq->xrcd = srq_init_attr_ex->xrcd;
-               }
-               if (srq_init_attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_CQ) {
-                       srq->comp_mask |= IBV_SRQ_CQ;
-                       srq->cq = srq_init_attr_ex->cq;
-               }
-       }
-
-       return srq;
-}
-default_symver(__ibv_create_srq_ex, ibv_create_srq_ex);
-
 struct ibv_srq *__ibv_create_srq(struct ibv_pd *pd,
                                 struct ibv_srq_init_attr *srq_init_attr)
 {
        struct ibv_srq *srq;
 
+       if (!pd->context->ops.create_srq)
+               return NULL;
+
        srq = pd->context->ops.create_srq(pd, srq_init_attr);
        if (srq) {
                srq->context          = pd->context;
-               srq->srq_context      = srq_init_attr_ex->srq_context;
+               srq->srq_context      = srq_init_attr->srq_context;
                srq->pd               = pd;
                srq->events_completed = 0;
                pthread_mutex_init(&srq->mutex, NULL);