]> git.openfabrics.org - ~shefty/libibverbs.git/commitdiff
Refresh of xrcd
authorSean Hefty <sean.hefty@intel.com>
Wed, 12 Sep 2012 17:58:03 +0000 (10:58 -0700)
committerSean Hefty <sean.hefty@intel.com>
Wed, 12 Sep 2012 17:58:03 +0000 (10:58 -0700)
include/infiniband/kern-abi.h
include/infiniband/verbs.h
src/cmd.c
src/libibverbs.map
src/verbs.c

index 6978037d763cbec9d870adce79a0613ff9a66b65..d7c673f43bed28ec9214bbf9da22ec7b678e4b19 100644 (file)
@@ -734,7 +734,7 @@ struct ibv_create_srq_resp {
        __u32 srq_handle;
        __u32 max_wr;
        __u32 max_sge;
-       __u32 srqn;
+       __u32 reserved;
 };
 
 struct ibv_modify_srq {
@@ -829,7 +829,6 @@ enum {
        IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL_V2 = -1,
        IB_USER_VERBS_CMD_OPEN_XRCD_V2 = -1,
        IB_USER_VERBS_CMD_CLOSE_XRCD_V2 = -1,
-       IB_USER_VERBS_CMD_CREATE_XSRQ_V2 = -1,
 };
 
 struct ibv_destroy_cq_v1 {
index f9a1b2e832a8e65b4be8564e9c2ac4c55e882420..6e32c8661a0bd654fda60f0697342ed652ef91c8 100644 (file)
@@ -426,9 +426,7 @@ struct ibv_srq_init_attr {
 enum ibv_qp_type {
        IBV_QPT_RC = 2,
        IBV_QPT_UC,
-       IBV_QPT_UD,
-       IBV_QPT_XRC_SEND = 9,
-       IBV_QPT_XRC_RECV
+       IBV_QPT_UD
 };
 
 struct ibv_qp_cap {
index 6c118beac887e66ccf734d603be79a31d3f4e684..527a051269dfd22bf9953246ff067f004672e340 100644 (file)
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -594,26 +594,13 @@ int ibv_cmd_create_qp(struct ibv_pd *pd,
                      struct ibv_create_qp *cmd, size_t cmd_size,
                      struct ibv_create_qp_resp *resp, size_t resp_size)
 {
-       struct ibv_context *context;
-
        IBV_INIT_CMD_RESP(cmd, cmd_size, CREATE_QP, resp, resp_size);
 
        cmd->user_handle     = (uintptr_t) qp;
-
-       if (attr->qp_type == IBV_QPT_XRC_RECV) {
-               context             = attr->ext.xrc_recv.xrcd->context;
-               cmd->pd_handle      = attr->ext.xrc_recv.xrcd->handle;
-       } else {
-               context             = pd->context;
-               cmd->pd_handle      = pd->handle;
-               cmd->send_cq_handle = attr->send_cq->handle;
-
-               if (attr->qp_type != IBV_QPT_XRC_SEND) {
-                       cmd->recv_cq_handle = attr->recv_cq->handle;
-                       cmd->srq_handle     = attr->srq ? attr->srq->handle : 0;
-               }
-       }
-       
+       cmd->pd_handle       = pd->handle;
+       cmd->send_cq_handle  = attr->send_cq->handle;
+       cmd->recv_cq_handle  = attr->recv_cq->handle;
+       cmd->srq_handle      = attr->srq ? attr->srq->handle : 0;
        cmd->max_send_wr     = attr->cap.max_send_wr;
        cmd->max_recv_wr     = attr->cap.max_recv_wr;
        cmd->max_send_sge    = attr->cap.max_send_sge;
@@ -624,14 +611,14 @@ int ibv_cmd_create_qp(struct ibv_pd *pd,
        cmd->is_srq          = !!attr->srq;
        cmd->reserved        = 0;
 
-       if (write(context->cmd_fd, cmd, cmd_size) != cmd_size)
+       if (write(pd->context->cmd_fd, cmd, cmd_size) != cmd_size)
                return errno;
 
        (void) VALGRIND_MAKE_MEM_DEFINED(resp, resp_size);
 
        qp->handle                = resp->qp_handle;
        qp->qp_num                = resp->qpn;
-       qp->context               = context;
+       qp->context               = pd->context;
 
        if (abi_ver > 3) {
                attr->cap.max_recv_sge    = resp->max_recv_sge;
index b98349c8ca71d209b9ab5d7421edcee9b53dcb9b..9a15f3fb80945215b40c1c865d9a35490d54aa66 100644 (file)
@@ -100,9 +100,5 @@ IBVERBS_1.1 {
                
                ibv_cmd_open_xrcd;
                ibv_cmd_close_xrcd;
-               ibv_cmd_create_xsrq;
-               ibv_open_xrcd;
-               ibv_close_xrcd;
-               ibv_create_xsrq;
                
 } IBVERBS_1.0;
index 0c64d29ae8bcca91f72b0df08e298f8fac81c62a..223b69ccabad395df54cdabde94bdde42a119b9d 100644 (file)
@@ -379,40 +379,12 @@ void __ibv_ack_cq_events(struct ibv_cq *cq, unsigned int nevents)
 }
 default_symver(__ibv_ack_cq_events, ibv_ack_cq_events);
 
-/*
- * Existing apps may be using an older, smaller version of srq_init_attr.
- */
 struct ibv_srq *__ibv_create_srq(struct ibv_pd *pd,
                                 struct ibv_srq_init_attr *srq_init_attr)
 {
-       struct ibv_srq_init_attr attr;
-       struct ibv_srq *srq;
-
-       attr.srq_context = srq_init_attr->srq_context;
-       attr.attr = srq_init_attr->attr;
-       attr.srq_type = IBV_SRQT_BASIC;
-
-       srq = ibv_create_xsrq(pd, &attr);
-       if (srq)
-               srq_init_attr->attr = attr.attr;
-
-       return srq;
-}
-default_symver(__ibv_create_srq, ibv_create_srq);
-
-struct ibv_srq *__ibv_create_srq_ex(struct ibv_pd *pd,
-                                   struct ibv_srq_init_attr_ex *srq_init_attr_ex)
-{
-       struct verbs_context *vcontext;
        struct ibv_srq *srq;
 
-       vcontext = verbs_get_ctx(pd->context);
-       if (!vcontext || !vcontext->create_srq_ex)
-               return NULL;
-
-       if (!pd->context->ops.create_srq ||
-           (srq_init_attr->srq_type != IBV_SRQT_BASIC &&
-            !ibv_get_ext_support(pd->context->device)))
+       if (!pd->context->ops.create_srq)
                return NULL;
 
        srq = pd->context->ops.create_srq(pd, srq_init_attr);
@@ -423,19 +395,11 @@ struct ibv_srq *__ibv_create_srq_ex(struct ibv_pd *pd,
                srq->events_completed = 0;
                pthread_mutex_init(&srq->mutex, NULL);
                pthread_cond_init(&srq->cond, NULL);
-
-               if (srq_init_attr->srq_type == IBV_SRQT_XRC) {
-                       srq->ext.xrc.xrcd = srq_init_attr->ext.xrc.xrcd;
-                       srq->ext.xrc.cq = srq_init_attr->ext.xrc.cq;
-               }
-
-               if (ibv_get_ext_support(pd->context->device))
-                       srq->srq_type = srq_init_attr->srq_type;
        }
 
        return srq;
 }
-default_symver(__ibv_create_xsrq, ibv_create_xsrq);
+default_symver(__ibv_create_srq, ibv_create_srq);
 
 int __ibv_modify_srq(struct ibv_srq *srq,
                     struct ibv_srq_attr *srq_attr,
@@ -460,32 +424,15 @@ default_symver(__ibv_destroy_srq, ibv_destroy_srq);
 struct ibv_qp *__ibv_create_qp(struct ibv_pd *pd,
                               struct ibv_qp_init_attr *qp_init_attr)
 {
-       struct ibv_context *context;
-       struct ibv_qp *qp;
+       struct ibv_qp *qp = pd->context->ops.create_qp(pd, qp_init_attr);
 
-       context = pd ? pd->context : qp_init_attr->ext.xrc_recv.xrcd->context;
-       qp = context->ops.create_qp(pd, qp_init_attr);
        if (qp) {
                qp->context    = context;
                qp->qp_context = qp_init_attr->qp_context;
-
-               if (qp_init_attr->qp_type == IBV_QPT_XRC_RECV) {
-                       qp->pd = NULL;
-                       qp->send_cq = qp->recv_cq = NULL;
-                       qp->srq = NULL;
-                       qp->ext.xrc_recv.xrcd = qp_init_attr->ext.xrc_recv.xrcd;
-               } else {
-                       if (qp_init_attr->qp_type == IBV_QPT_XRC_SEND) {
-                               qp->recv_cq = NULL;
-                               qp->srq = NULL;
-                       } else {
-                               qp->recv_cq = qp_init_attr->recv_cq;
-                               qp->srq     = qp_init_attr->srq;
-                       }
-               
-                       qp->pd      = pd;
-                       qp->send_cq = qp_init_attr->send_cq;
-               }
+               qp->pd         = pd;
+               qp->send_cq    = qp_init_attr->send_cq;
+               qp->recv_cq    = qp_init_attr->recv_cq;
+               qp->srq        = qp_init_attr->srq;
 
                qp->qp_type          = qp_init_attr->qp_type;
                qp->state            = IBV_QPS_RESET;