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()
777 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_send()
790 qp->attrs.state); in siw_post_send()
796 if (unlikely(qp->attrs.state != SIW_QP_STATE_RTS)) { in siw_post_send()
797 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_send()
808 qp->attrs.state); in siw_post_send()
818 u32 idx = qp->sq_put % qp->attrs.sq_size; in siw_post_send()
826 if (wr->num_sge > qp->attrs.sq_max_sges) { in siw_post_send()
834 (qp->attrs.flags & SIW_SIGNAL_ALL_WR)) in siw_post_send()
1004 if (qp->srq || qp->attrs.rq_size == 0) { in siw_post_receive()
1019 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_receive()
1032 qp->attrs.state); in siw_post_receive()
1038 if (qp->attrs.state > SIW_QP_STATE_RTS) { in siw_post_receive()
1039 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_receive()
1050 qp->attrs.state); in siw_post_receive()
1064 u32 idx = qp->rq_put % qp->attrs.rq_size; in siw_post_receive()
1072 if (wr->num_sge > qp->attrs.rq_max_sges) { in siw_post_receive()
1146 if (size < 1 || size > sdev->attrs.max_cqe) { in siw_create_cq()
1595 struct ib_srq_attr *attrs = &init_attrs->attr; in siw_create_srq() local
1610 if (attrs->max_wr == 0 || attrs->max_wr > SIW_MAX_SRQ_WR || in siw_create_srq()
1611 attrs->max_sge > SIW_MAX_SGE || attrs->srq_limit > attrs->max_wr) { in siw_create_srq()
1615 srq->max_sge = attrs->max_sge; in siw_create_srq()
1616 srq->num_rqe = roundup_pow_of_two(attrs->max_wr); in siw_create_srq()
1617 srq->limit = attrs->srq_limit; in siw_create_srq()
1681 int siw_modify_srq(struct ib_srq *base_srq, struct ib_srq_attr *attrs, in siw_modify_srq() argument
1696 if (attrs->srq_limit) { in siw_modify_srq()
1697 if (unlikely(attrs->srq_limit > srq->num_rqe)) { in siw_modify_srq()
1705 srq->limit = attrs->srq_limit; in siw_modify_srq()
1718 int siw_query_srq(struct ib_srq *base_srq, struct ib_srq_attr *attrs) in siw_query_srq() argument
1725 attrs->max_wr = srq->num_rqe; in siw_query_srq()
1726 attrs->max_sge = srq->max_sge; in siw_query_srq()
1727 attrs->srq_limit = srq->limit; in siw_query_srq()
1834 if (qp->attrs.flags & SIW_QP_IN_DESTROY) in siw_qp_event()