Lines Matching refs:attrs

136 	attr->max_cq = sdev->attrs.max_cq;  in siw_query_device()
137 attr->max_cqe = sdev->attrs.max_cqe; in siw_query_device()
139 attr->max_mr = sdev->attrs.max_mr; in siw_query_device()
140 attr->max_mw = sdev->attrs.max_mw; in siw_query_device()
142 attr->max_pd = sdev->attrs.max_pd; in siw_query_device()
143 attr->max_qp = sdev->attrs.max_qp; in siw_query_device()
144 attr->max_qp_init_rd_atom = sdev->attrs.max_ird; in siw_query_device()
145 attr->max_qp_rd_atom = sdev->attrs.max_ord; in siw_query_device()
146 attr->max_qp_wr = sdev->attrs.max_qp_wr; in siw_query_device()
147 attr->max_recv_sge = sdev->attrs.max_sge; in siw_query_device()
148 attr->max_res_rd_atom = sdev->attrs.max_qp * sdev->attrs.max_ird; in siw_query_device()
149 attr->max_send_sge = sdev->attrs.max_sge; in siw_query_device()
150 attr->max_sge_rd = sdev->attrs.max_sge_rd; in siw_query_device()
151 attr->max_srq = sdev->attrs.max_srq; in siw_query_device()
152 attr->max_srq_sge = sdev->attrs.max_srq_sge; in siw_query_device()
153 attr->max_srq_wr = sdev->attrs.max_srq_wr; in siw_query_device()
294 struct ib_qp_init_attr *attrs, in siw_create_qp() argument
314 if (attrs->qp_type != IB_QPT_RC) { in siw_create_qp()
319 if ((attrs->cap.max_send_wr > SIW_MAX_QP_WR) || in siw_create_qp()
320 (attrs->cap.max_recv_wr > SIW_MAX_QP_WR) || in siw_create_qp()
321 (attrs->cap.max_send_sge > SIW_MAX_SGE) || in siw_create_qp()
322 (attrs->cap.max_recv_sge > SIW_MAX_SGE)) { in siw_create_qp()
327 if (attrs->cap.max_inline_data > SIW_MAX_INLINE) { in siw_create_qp()
329 attrs->cap.max_inline_data, (int)SIW_MAX_INLINE); in siw_create_qp()
337 if (attrs->cap.max_send_wr + attrs->cap.max_recv_wr == 0) { in siw_create_qp()
343 if (!attrs->send_cq || (!attrs->recv_cq && !attrs->srq)) { in siw_create_qp()
362 num_sqe = attrs->cap.max_send_wr; in siw_create_qp()
363 num_rqe = attrs->cap.max_recv_wr; in siw_create_qp()
389 if (attrs->sq_sig_type != IB_SIGNAL_REQ_WR) { in siw_create_qp()
390 if (attrs->sq_sig_type == IB_SIGNAL_ALL_WR) in siw_create_qp()
391 qp->attrs.flags |= SIW_SIGNAL_ALL_WR; in siw_create_qp()
398 qp->scq = to_siw_cq(attrs->send_cq); in siw_create_qp()
399 qp->rcq = to_siw_cq(attrs->recv_cq); in siw_create_qp()
401 if (attrs->srq) { in siw_create_qp()
407 qp->srq = to_siw_srq(attrs->srq); in siw_create_qp()
408 qp->attrs.rq_size = 0; in siw_create_qp()
422 qp->attrs.rq_size = num_rqe; in siw_create_qp()
424 qp->attrs.sq_size = num_sqe; in siw_create_qp()
425 qp->attrs.sq_max_sges = attrs->cap.max_send_sge; in siw_create_qp()
426 qp->attrs.rq_max_sges = attrs->cap.max_recv_sge; in siw_create_qp()
432 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()
595 siw_dbg_qp(qp, "state %d\n", qp->attrs.state); in siw_destroy_qp()
601 qp->attrs.flags |= SIW_QP_IN_DESTROY; in siw_destroy_qp()
741 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_send()
754 qp->attrs.state); in siw_post_send()
760 if (unlikely(qp->attrs.state != SIW_QP_STATE_RTS)) { in siw_post_send()
761 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_send()
772 qp->attrs.state); in siw_post_send()
782 u32 idx = qp->sq_put % qp->attrs.sq_size; in siw_post_send()
790 if (wr->num_sge > qp->attrs.sq_max_sges) { in siw_post_send()
798 (qp->attrs.flags & SIW_SIGNAL_ALL_WR)) in siw_post_send()
968 if (qp->srq || qp->attrs.rq_size == 0) { in siw_post_receive()
983 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_receive()
996 qp->attrs.state); in siw_post_receive()
1002 if (qp->attrs.state > SIW_QP_STATE_RTS) { in siw_post_receive()
1003 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_receive()
1014 qp->attrs.state); in siw_post_receive()
1028 u32 idx = qp->rq_put % qp->attrs.rq_size; in siw_post_receive()
1036 if (wr->num_sge > qp->attrs.rq_max_sges) { in siw_post_receive()
1107 if (size < 1 || size > sdev->attrs.max_cqe) { in siw_create_cq()
1556 struct ib_srq_attr *attrs = &init_attrs->attr; in siw_create_srq() local
1568 if (attrs->max_wr == 0 || attrs->max_wr > SIW_MAX_SRQ_WR || in siw_create_srq()
1569 attrs->max_sge > SIW_MAX_SGE || attrs->srq_limit > attrs->max_wr) { in siw_create_srq()
1573 srq->max_sge = attrs->max_sge; in siw_create_srq()
1574 srq->num_rqe = roundup_pow_of_two(attrs->max_wr); in siw_create_srq()
1575 srq->limit = attrs->srq_limit; in siw_create_srq()
1639 int siw_modify_srq(struct ib_srq *base_srq, struct ib_srq_attr *attrs, in siw_modify_srq() argument
1654 if (attrs->srq_limit) { in siw_modify_srq()
1655 if (unlikely(attrs->srq_limit > srq->num_rqe)) { in siw_modify_srq()
1663 srq->limit = attrs->srq_limit; in siw_modify_srq()
1676 int siw_query_srq(struct ib_srq *base_srq, struct ib_srq_attr *attrs) in siw_query_srq() argument
1683 attrs->max_wr = srq->num_rqe; in siw_query_srq()
1684 attrs->max_sge = srq->max_sge; in siw_query_srq()
1685 attrs->srq_limit = srq->limit; in siw_query_srq()
1792 if (qp->attrs.flags & SIW_QP_IN_DESTROY) in siw_qp_event()