]> git.openfabrics.org - ~shefty/libibverbs.git/commitdiff
Refresh of srq_ex
authorSean Hefty <sean.hefty@intel.com>
Wed, 26 Sep 2012 18:07:11 +0000 (11:07 -0700)
committerSean Hefty <sean.hefty@intel.com>
Wed, 26 Sep 2012 18:07:11 +0000 (11:07 -0700)
include/infiniband/driver.h
src/cmd.c

index ef4e3fe699c6f0c3c56a490875a3d10ac5287eac..30aa57387f41a5e2a7c814f3181d0076eac07252 100644 (file)
@@ -76,7 +76,7 @@ struct verbs_srq {
        struct ibv_srq          srq;
        uint32_t                comp_mask;
        enum ibv_srq_type       srq_type;
-       struct ibv_xrcd        *xrcd;
+       struct verbs_xrcd      *xrcd;
        struct ibv_cq          *cq;
        uint32_t                srq_num;
 };
index 08d8e2ae540580cf9d9e4573a8b113473c235e10..cbdcfdbdf03d692760243feac3c3e1d60b1f9acc 100644 (file)
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -482,10 +482,12 @@ int ibv_cmd_create_srq(struct ibv_pd *pd,
 }
 
 int ibv_cmd_create_srq_ex(struct ibv_pd *pd,
-                         struct ibv_srq *srq, struct ibv_srq_init_attr_ex *attr_ex,
+                         struct verbs_srq *srq, struct ibv_srq_init_attr_ex *attr_ex,
                          struct ibv_create_xsrq *cmd, size_t cmd_size,
                          struct ibv_create_srq_resp *resp, size_t resp_size)
 {
+       struct verbs_xrcd *vxrcd = NULL;
+
        IBV_INIT_CMD_RESP(cmd, cmd_size, CREATE_XSRQ, resp, resp_size);
 
        if (attr_ex->comp_mask >= IBV_SRQ_INIT_ATTR_RESERVED)
@@ -499,8 +501,10 @@ int ibv_cmd_create_srq_ex(struct ibv_pd *pd,
 
        cmd->srq_type = (attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_TYPE) ?
                        attr_ex->srq_type : IBV_SRQT_BASIC;
-       if (attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_XRCD)
-               cmd->xrcd_handle = attr_ex->xrcd->handle;
+       if (attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_XRCD) {
+               vxrcd = container_of(attr_ex->xrcd, struct verbs_xrcd, xrcd);
+               cmd->xrcd_handle = vxrcd->handle;
+       }
        if (attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_CQ)
                cmd->cq_handle   = attr_ex->cq->handle;
 
@@ -509,7 +513,7 @@ int ibv_cmd_create_srq_ex(struct ibv_pd *pd,
 
        VALGRIND_MAKE_MEM_DEFINED(resp, resp_size);
 
-       srq->handle  = resp->srq_handle;
+       srq->handle           = resp->srq_handle;
        srq->context          = pd->context;
        srq->srq_context      = srq_init_attr_ex->srq_context;
        srq->pd               = pd;
@@ -526,7 +530,7 @@ int ibv_cmd_create_srq_ex(struct ibv_pd *pd,
        }
        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;
+               srq->xrcd = vxrcd;
        }
        if (srq_init_attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_CQ) {
                srq->comp_mask |= IBV_SRQ_CQ;