Lines Matching refs:attrs

137 	attr->max_cq = sdev->attrs.max_cq;  in siw_query_device()
138 attr->max_cqe = sdev->attrs.max_cqe; in siw_query_device()
140 attr->max_mr = sdev->attrs.max_mr; in siw_query_device()
141 attr->max_mw = sdev->attrs.max_mw; in siw_query_device()
143 attr->max_pd = sdev->attrs.max_pd; in siw_query_device()
144 attr->max_qp = sdev->attrs.max_qp; in siw_query_device()
145 attr->max_qp_init_rd_atom = sdev->attrs.max_ird; in siw_query_device()
146 attr->max_qp_rd_atom = sdev->attrs.max_ord; in siw_query_device()
147 attr->max_qp_wr = sdev->attrs.max_qp_wr; in siw_query_device()
148 attr->max_recv_sge = sdev->attrs.max_sge; in siw_query_device()
149 attr->max_res_rd_atom = sdev->attrs.max_qp * sdev->attrs.max_ird; in siw_query_device()
150 attr->max_send_sge = sdev->attrs.max_sge; in siw_query_device()
151 attr->max_sge_rd = sdev->attrs.max_sge_rd; in siw_query_device()
152 attr->max_srq = sdev->attrs.max_srq; in siw_query_device()
153 attr->max_srq_sge = sdev->attrs.max_srq_sge; in siw_query_device()
154 attr->max_srq_wr = sdev->attrs.max_srq_wr; in siw_query_device()
295 int siw_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *attrs, in siw_create_qp() argument
311 if (attrs->create_flags) in siw_create_qp()
319 if (attrs->qp_type != IB_QPT_RC) { in siw_create_qp()
324 if ((attrs->cap.max_send_wr > SIW_MAX_QP_WR) || in siw_create_qp()
325 (attrs->cap.max_recv_wr > SIW_MAX_QP_WR) || in siw_create_qp()
326 (attrs->cap.max_send_sge > SIW_MAX_SGE) || in siw_create_qp()
327 (attrs->cap.max_recv_sge > SIW_MAX_SGE)) { in siw_create_qp()
332 if (attrs->cap.max_inline_data > SIW_MAX_INLINE) { in siw_create_qp()
334 attrs->cap.max_inline_data, (int)SIW_MAX_INLINE); in siw_create_qp()
342 if (attrs->cap.max_send_wr + attrs->cap.max_recv_wr == 0) { in siw_create_qp()
348 if (!attrs->send_cq || (!attrs->recv_cq && !attrs->srq)) { in siw_create_qp()
363 num_sqe = attrs->cap.max_send_wr; in siw_create_qp()
364 num_rqe = attrs->cap.max_recv_wr; in siw_create_qp()
390 if (attrs->sq_sig_type != IB_SIGNAL_REQ_WR) { in siw_create_qp()
391 if (attrs->sq_sig_type == IB_SIGNAL_ALL_WR) in siw_create_qp()
392 qp->attrs.flags |= SIW_SIGNAL_ALL_WR; in siw_create_qp()
399 qp->scq = to_siw_cq(attrs->send_cq); in siw_create_qp()
400 qp->rcq = to_siw_cq(attrs->recv_cq); in siw_create_qp()
402 if (attrs->srq) { in siw_create_qp()
408 qp->srq = to_siw_srq(attrs->srq); in siw_create_qp()
409 qp->attrs.rq_size = 0; in siw_create_qp()
423 qp->attrs.rq_size = num_rqe; in siw_create_qp()
425 qp->attrs.sq_size = num_sqe; in siw_create_qp()
426 qp->attrs.sq_max_sges = attrs->cap.max_send_sge; in siw_create_qp()
427 qp->attrs.rq_max_sges = attrs->cap.max_recv_sge; in siw_create_qp()
433 qp->attrs.state = SIW_QP_STATE_IDLE; in siw_create_qp()
519 qp_attr->cap.max_send_wr = qp->attrs.sq_size; in siw_query_qp()
520 qp_attr->cap.max_send_sge = qp->attrs.sq_max_sges; in siw_query_qp()
521 qp_attr->cap.max_recv_wr = qp->attrs.rq_size; in siw_query_qp()
522 qp_attr->cap.max_recv_sge = qp->attrs.rq_max_sges; in siw_query_qp()
524 qp_attr->max_rd_atomic = qp->attrs.irq_size; in siw_query_qp()
525 qp_attr->max_dest_rd_atomic = qp->attrs.orq_size; in siw_query_qp()
598 siw_dbg_qp(qp, "state %d\n", qp->attrs.state); in siw_destroy_qp()
604 qp->attrs.flags |= SIW_QP_IN_DESTROY; in siw_destroy_qp()
745 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_send()
758 qp->attrs.state); in siw_post_send()
764 if (unlikely(qp->attrs.state != SIW_QP_STATE_RTS)) { in siw_post_send()
765 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_send()
776 qp->attrs.state); in siw_post_send()
786 u32 idx = qp->sq_put % qp->attrs.sq_size; in siw_post_send()
794 if (wr->num_sge > qp->attrs.sq_max_sges) { in siw_post_send()
802 (qp->attrs.flags & SIW_SIGNAL_ALL_WR)) in siw_post_send()
972 if (qp->srq || qp->attrs.rq_size == 0) { in siw_post_receive()
987 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_receive()
1000 qp->attrs.state); in siw_post_receive()
1006 if (qp->attrs.state > SIW_QP_STATE_RTS) { in siw_post_receive()
1007 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_receive()
1018 qp->attrs.state); in siw_post_receive()
1032 u32 idx = qp->rq_put % qp->attrs.rq_size; in siw_post_receive()
1040 if (wr->num_sge > qp->attrs.rq_max_sges) { in siw_post_receive()
1114 if (size < 1 || size > sdev->attrs.max_cqe) { in siw_create_cq()
1563 struct ib_srq_attr *attrs = &init_attrs->attr; in siw_create_srq() local
1578 if (attrs->max_wr == 0 || attrs->max_wr > SIW_MAX_SRQ_WR || in siw_create_srq()
1579 attrs->max_sge > SIW_MAX_SGE || attrs->srq_limit > attrs->max_wr) { in siw_create_srq()
1583 srq->max_sge = attrs->max_sge; in siw_create_srq()
1584 srq->num_rqe = roundup_pow_of_two(attrs->max_wr); in siw_create_srq()
1585 srq->limit = attrs->srq_limit; in siw_create_srq()
1649 int siw_modify_srq(struct ib_srq *base_srq, struct ib_srq_attr *attrs, in siw_modify_srq() argument
1664 if (attrs->srq_limit) { in siw_modify_srq()
1665 if (unlikely(attrs->srq_limit > srq->num_rqe)) { in siw_modify_srq()
1673 srq->limit = attrs->srq_limit; in siw_modify_srq()
1686 int siw_query_srq(struct ib_srq *base_srq, struct ib_srq_attr *attrs) in siw_query_srq() argument
1693 attrs->max_wr = srq->num_rqe; in siw_query_srq()
1694 attrs->max_sge = srq->max_sge; in siw_query_srq()
1695 attrs->srq_limit = srq->limit; in siw_query_srq()
1802 if (qp->attrs.flags & SIW_QP_IN_DESTROY) in siw_qp_event()