Lines Matching refs:attrs
137 attr->max_cq = sdev->attrs.max_cq;
138 attr->max_cqe = sdev->attrs.max_cqe;
140 attr->max_mr = sdev->attrs.max_mr;
141 attr->max_mw = sdev->attrs.max_mw;
143 attr->max_pd = sdev->attrs.max_pd;
144 attr->max_qp = sdev->attrs.max_qp;
145 attr->max_qp_init_rd_atom = sdev->attrs.max_ird;
146 attr->max_qp_rd_atom = sdev->attrs.max_ord;
147 attr->max_qp_wr = sdev->attrs.max_qp_wr;
148 attr->max_recv_sge = sdev->attrs.max_sge;
149 attr->max_res_rd_atom = sdev->attrs.max_qp * sdev->attrs.max_ird;
150 attr->max_send_sge = sdev->attrs.max_sge;
151 attr->max_sge_rd = sdev->attrs.max_sge_rd;
152 attr->max_srq = sdev->attrs.max_srq;
153 attr->max_srq_sge = sdev->attrs.max_srq_sge;
154 attr->max_srq_wr = sdev->attrs.max_srq_wr;
291 * @attrs: Initial QP attributes.
295 int siw_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *attrs,
311 if (attrs->create_flags)
319 if (attrs->qp_type != IB_QPT_RC) {
324 if ((attrs->cap.max_send_wr > SIW_MAX_QP_WR) ||
325 (attrs->cap.max_recv_wr > SIW_MAX_QP_WR) ||
326 (attrs->cap.max_send_sge > SIW_MAX_SGE) ||
327 (attrs->cap.max_recv_sge > SIW_MAX_SGE)) {
332 if (attrs->cap.max_inline_data > SIW_MAX_INLINE) {
334 attrs->cap.max_inline_data, (int)SIW_MAX_INLINE);
342 if (attrs->cap.max_send_wr + attrs->cap.max_recv_wr == 0) {
348 if (!attrs->send_cq || (!attrs->recv_cq && !attrs->srq)) {
363 num_sqe = attrs->cap.max_send_wr;
364 num_rqe = attrs->cap.max_recv_wr;
390 if (attrs->sq_sig_type != IB_SIGNAL_REQ_WR) {
391 if (attrs->sq_sig_type == IB_SIGNAL_ALL_WR)
392 qp->attrs.flags |= SIW_SIGNAL_ALL_WR;
399 qp->scq = to_siw_cq(attrs->send_cq);
400 qp->rcq = to_siw_cq(attrs->recv_cq);
402 if (attrs->srq) {
408 qp->srq = to_siw_srq(attrs->srq);
409 qp->attrs.rq_size = 0;
423 qp->attrs.rq_size = num_rqe;
425 qp->attrs.sq_size = num_sqe;
426 qp->attrs.sq_max_sges = attrs->cap.max_send_sge;
427 qp->attrs.rq_max_sges = attrs->cap.max_recv_sge;
433 qp->attrs.state = SIW_QP_STATE_IDLE;
519 qp_attr->cap.max_send_wr = qp->attrs.sq_size;
520 qp_attr->cap.max_send_sge = qp->attrs.sq_max_sges;
521 qp_attr->cap.max_recv_wr = qp->attrs.rq_size;
522 qp_attr->cap.max_recv_sge = qp->attrs.rq_max_sges;
524 qp_attr->max_rd_atomic = qp->attrs.irq_size;
525 qp_attr->max_dest_rd_atomic = qp->attrs.orq_size;
598 siw_dbg_qp(qp, "state %d\n", qp->attrs.state);
604 qp->attrs.flags |= SIW_QP_IN_DESTROY;
777 if (qp->attrs.state == SIW_QP_STATE_ERROR) {
790 qp->attrs.state);
796 if (unlikely(qp->attrs.state != SIW_QP_STATE_RTS)) {
797 if (qp->attrs.state == SIW_QP_STATE_ERROR) {
808 qp->attrs.state);
818 u32 idx = qp->sq_put % qp->attrs.sq_size;
826 if (wr->num_sge > qp->attrs.sq_max_sges) {
834 (qp->attrs.flags & SIW_SIGNAL_ALL_WR))
1004 if (qp->srq || qp->attrs.rq_size == 0) {
1019 if (qp->attrs.state == SIW_QP_STATE_ERROR) {
1032 qp->attrs.state);
1038 if (qp->attrs.state > SIW_QP_STATE_RTS) {
1039 if (qp->attrs.state == SIW_QP_STATE_ERROR) {
1050 qp->attrs.state);
1064 u32 idx = qp->rq_put % qp->attrs.rq_size;
1072 if (wr->num_sge > qp->attrs.rq_max_sges) {
1146 if (size < 1 || size > sdev->attrs.max_cqe) {
1595 struct ib_srq_attr *attrs = &init_attrs->attr;
1610 if (attrs->max_wr == 0 || attrs->max_wr > SIW_MAX_SRQ_WR ||
1611 attrs->max_sge > SIW_MAX_SGE || attrs->srq_limit > attrs->max_wr) {
1615 srq->max_sge = attrs->max_sge;
1616 srq->num_rqe = roundup_pow_of_two(attrs->max_wr);
1617 srq->limit = attrs->srq_limit;
1679 * parameter. siw_modify_srq() does not check the attrs->max_sge param.
1681 int siw_modify_srq(struct ib_srq *base_srq, struct ib_srq_attr *attrs,
1696 if (attrs->srq_limit) {
1697 if (unlikely(attrs->srq_limit > srq->num_rqe)) {
1705 srq->limit = attrs->srq_limit;
1718 int siw_query_srq(struct ib_srq *base_srq, struct ib_srq_attr *attrs)
1725 attrs->max_wr = srq->num_rqe;
1726 attrs->max_sge = srq->max_sge;
1727 attrs->srq_limit = srq->limit;
1834 if (qp->attrs.flags & SIW_QP_IN_DESTROY)