From: Sean Hefty Date: Fri, 28 Sep 2012 17:10:57 +0000 (-0700) Subject: Refresh of xrc_qp X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=f1dc57bf8c532c1ed5c9ee36a711548477d9c65a;p=~shefty%2Flibibverbs.git Refresh of xrc_qp --- diff --git a/include/infiniband/verbs.h b/include/infiniband/verbs.h index 0fdbecf..e7e4d3e 100644 --- a/include/infiniband/verbs.h +++ b/include/infiniband/verbs.h @@ -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; }