]> git.openfabrics.org - ~shefty/libibverbs.git/commitdiff
Refresh of xrc_qp
authorSean Hefty <sean.hefty@intel.com>
Fri, 28 Sep 2012 17:10:57 +0000 (10:10 -0700)
committerSean Hefty <sean.hefty@intel.com>
Fri, 28 Sep 2012 17:10:57 +0000 (10:10 -0700)
include/infiniband/verbs.h

index 0fdbecfffb17c7b7896505af291a38557444e290..e7e4d3ef49d934b1fb563a81acb9a5d0e8f06302 100644 (file)
@@ -1162,8 +1162,14 @@ struct ibv_qp *ibv_create_qp(struct ibv_pd *pd,
 static inline struct ibv_qp *
 ibv_create_qp_ex(struct ibv_context *context, struct ibv_qp_init_attr_ex *qp_init_attr_ex)
 {
-       struct verbs_context *vctx = verbs_get_ctx_op(context, create_qp_ex);
-       if (!vctx) {
+       struct verbs_context *vctx;
+       uint32_t mask = qp_init_attr_ex->comp_mask;
+
+       if (!(mask & ~(IBV_QP_INIT_ATTR_PD)) && (mask & IBV_QP_INIT_ATTR_PD))
+               return ibv_create_qp(qp_init_attr_ex->pd,
+                                    (struct ibv_qp_init_attr *) qp_init_attr_ex);
+
+       if (!(vctx = verbs_get_ctx_op(context, create_qp_ex))) {
                errno = ENOSYS;
                return NULL;
        }