struct ibv_create_srq_resp *resp, size_t resp_size);
int ibv_cmd_create_srq_ex(struct ibv_pd *pd,
struct ibv_srq *srq, struct ibv_srq_init_attr_ex *attr_ex,
- struct ibv_create_srq_ex *cmd, size_t cmd_size,
+ struct ibv_create_xsrq *cmd, size_t cmd_size,
struct ibv_create_srq_resp *resp, size_t resp_size);
int ibv_cmd_modify_srq(struct ibv_srq *srq,
struct ibv_srq_attr *srq_attr,
srq = context_ex->create_srq_ex(pd, srq_init_attr_ex);
if (srq) {
srq->context = pd->context;
- srq->srq_context = srq_init_attr->srq_context;
+ srq->srq_context = srq_init_attr_ex->srq_context;
srq->pd = pd;
srq->events_completed = 0;
pthread_mutex_init(&srq->mutex, NULL);
pthread_cond_init(&srq->cond, NULL);
srq->comp_mask |= IBV_SRQ_INIT_ATTR_SRQ_TYPE;
- srq->srq_type = (attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_SRQ_TYPE) ?
- attr_ex->srq_type : IBV_SRQT_BASIC;
+ srq->srq_type = (srq_init_attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_SRQ_TYPE) ?
+ srq_init_attr_ex->srq_type : IBV_SRQT_BASIC;
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;
}
if (srq_init_attr_ex->comp_mask & IBV_SRQ_INIT_ATTR_CQ) {
srq->comp_mask |= IBV_SRQ_CQ;
- srq->xrcd = srq_init_attr_ex->cq;
+ srq->cq = srq_init_attr_ex->cq;
}
}