From: Sean Hefty Date: Tue, 18 Sep 2012 04:30:33 +0000 (-0700) Subject: Refresh of xrc_qp X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=a17a90161d7203af799c2c4ef2be95e3c1231c87;p=~shefty%2Flibibverbs.git Refresh of xrc_qp --- diff --git a/src/cmd.c b/src/cmd.c index 4bbd194..7dc578a 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -705,10 +705,15 @@ int ibv_cmd_create_qp(struct ibv_pd *pd, struct ibv_create_qp_resp *resp, size_t resp_size) { struct ibv_qp_init_attr_ex attr_ex; + int ret; - memcpy(&attr_ex, attr, sizeof attr); + memcpy(&attr_ex, attr, sizeof *attr); attr_ex.comp_mask = 0; - return ibv_cmd_create_qp_ex(pd, qp, &attr_ex, cmd, cmd_size, resp, resp_size); + ret = ibv_cmd_create_qp_ex(pd, qp, &attr_ex, cmd, cmd_size, resp, resp_size); + if (!ret) + memcpy(attr, &attr_ex, sizeof *attr); + + return ret; } int ibv_cmd_query_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, diff --git a/src/verbs.c b/src/verbs.c index 5eae4bd..2643302 100644 --- a/src/verbs.c +++ b/src/verbs.c @@ -515,10 +515,15 @@ struct ibv_qp *__ibv_create_qp(struct ibv_pd *pd, struct ibv_qp_init_attr *qp_init_attr) { struct ibv_qp_init_attr_ex qp_init_attr_ex; + struct ibv_qp *qp; - memcpy(&qp_init_attr_ex, qp_init_attr, sizeof qp_init_attr); + memcpy(&qp_init_attr_ex, qp_init_attr, sizeof *qp_init_attr); qp_init_attr_ex.comp_mask = 0; - return ibv_create_qp_ex(pd, &qp_init_attr_ex); + qp = ibv_create_qp_ex(pd, &qp_init_attr_ex); + if (qp) + memcpy(qp_init_attr, &qp_init_attr_ex, sizeof *qp_init_attr); + + return qp; } default_symver(__ibv_create_qp, ibv_create_qp);