Lines Matching refs:attrs

143 	attr->max_cq = sdev->attrs.max_cq;  in siw_query_device()
144 attr->max_cqe = sdev->attrs.max_cqe; in siw_query_device()
146 attr->max_mr = sdev->attrs.max_mr; in siw_query_device()
147 attr->max_mw = sdev->attrs.max_mw; in siw_query_device()
149 attr->max_pd = sdev->attrs.max_pd; in siw_query_device()
150 attr->max_qp = sdev->attrs.max_qp; in siw_query_device()
151 attr->max_qp_init_rd_atom = sdev->attrs.max_ird; in siw_query_device()
152 attr->max_qp_rd_atom = sdev->attrs.max_ord; in siw_query_device()
153 attr->max_qp_wr = sdev->attrs.max_qp_wr; in siw_query_device()
154 attr->max_recv_sge = sdev->attrs.max_sge; in siw_query_device()
155 attr->max_res_rd_atom = sdev->attrs.max_qp * sdev->attrs.max_ird; in siw_query_device()
156 attr->max_send_sge = sdev->attrs.max_sge; in siw_query_device()
157 attr->max_sge_rd = sdev->attrs.max_sge_rd; in siw_query_device()
158 attr->max_srq = sdev->attrs.max_srq; in siw_query_device()
159 attr->max_srq_sge = sdev->attrs.max_srq_sge; in siw_query_device()
160 attr->max_srq_wr = sdev->attrs.max_srq_wr; in siw_query_device()
309 int siw_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *attrs, in siw_create_qp() argument
325 if (attrs->create_flags) in siw_create_qp()
333 if (attrs->qp_type != IB_QPT_RC) { in siw_create_qp()
338 if ((attrs->cap.max_send_wr > SIW_MAX_QP_WR) || in siw_create_qp()
339 (attrs->cap.max_recv_wr > SIW_MAX_QP_WR) || in siw_create_qp()
340 (attrs->cap.max_send_sge > SIW_MAX_SGE) || in siw_create_qp()
341 (attrs->cap.max_recv_sge > SIW_MAX_SGE)) { in siw_create_qp()
346 if (attrs->cap.max_inline_data > SIW_MAX_INLINE) { in siw_create_qp()
348 attrs->cap.max_inline_data, (int)SIW_MAX_INLINE); in siw_create_qp()
355 if (attrs->cap.max_send_wr == 0) { in siw_create_qp()
361 if (!attrs->send_cq || (!attrs->recv_cq && !attrs->srq)) { in siw_create_qp()
382 num_sqe = roundup_pow_of_two(attrs->cap.max_send_wr); in siw_create_qp()
383 num_rqe = attrs->cap.max_recv_wr; in siw_create_qp()
396 if (attrs->sq_sig_type != IB_SIGNAL_REQ_WR) { in siw_create_qp()
397 if (attrs->sq_sig_type == IB_SIGNAL_ALL_WR) in siw_create_qp()
398 qp->attrs.flags |= SIW_SIGNAL_ALL_WR; in siw_create_qp()
405 qp->scq = to_siw_cq(attrs->send_cq); in siw_create_qp()
406 qp->rcq = to_siw_cq(attrs->recv_cq); in siw_create_qp()
408 if (attrs->srq) { in siw_create_qp()
414 qp->srq = to_siw_srq(attrs->srq); in siw_create_qp()
415 qp->attrs.rq_size = 0; in siw_create_qp()
429 qp->attrs.rq_size = num_rqe; in siw_create_qp()
431 qp->attrs.sq_size = num_sqe; in siw_create_qp()
432 qp->attrs.sq_max_sges = attrs->cap.max_send_sge; in siw_create_qp()
433 qp->attrs.rq_max_sges = attrs->cap.max_recv_sge; in siw_create_qp()
439 qp->attrs.state = SIW_QP_STATE_IDLE; in siw_create_qp()
527 qp_attr->qp_state = siw_qp_state_to_ib_qp_state[qp->attrs.state]; in siw_query_qp()
529 qp_attr->cap.max_send_wr = qp->attrs.sq_size; in siw_query_qp()
530 qp_attr->cap.max_send_sge = qp->attrs.sq_max_sges; in siw_query_qp()
531 qp_attr->cap.max_recv_wr = qp->attrs.rq_size; in siw_query_qp()
532 qp_attr->cap.max_recv_sge = qp->attrs.rq_max_sges; in siw_query_qp()
534 qp_attr->max_rd_atomic = qp->attrs.irq_size; in siw_query_qp()
535 qp_attr->max_dest_rd_atomic = qp->attrs.orq_size; in siw_query_qp()
609 siw_dbg_qp(qp, "state %d\n", qp->attrs.state); in siw_destroy_qp()
615 qp->attrs.flags |= SIW_QP_IN_DESTROY; in siw_destroy_qp()
788 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_send()
801 qp->attrs.state); in siw_post_send()
807 if (unlikely(qp->attrs.state != SIW_QP_STATE_RTS)) { in siw_post_send()
808 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_send()
819 qp->attrs.state); in siw_post_send()
829 u32 idx = qp->sq_put % qp->attrs.sq_size; in siw_post_send()
837 if (wr->num_sge > qp->attrs.sq_max_sges) { in siw_post_send()
845 (qp->attrs.flags & SIW_SIGNAL_ALL_WR)) in siw_post_send()
1015 if (qp->srq || qp->attrs.rq_size == 0) { in siw_post_receive()
1030 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_receive()
1043 qp->attrs.state); in siw_post_receive()
1049 if (qp->attrs.state > SIW_QP_STATE_RTS) { in siw_post_receive()
1050 if (qp->attrs.state == SIW_QP_STATE_ERROR) { in siw_post_receive()
1061 qp->attrs.state); in siw_post_receive()
1075 u32 idx = qp->rq_put % qp->attrs.rq_size; in siw_post_receive()
1083 if (wr->num_sge > qp->attrs.rq_max_sges) { in siw_post_receive()
1143 struct uverbs_attr_bundle *attrs) in siw_create_cq() argument
1145 struct ib_udata *udata = &attrs->driver_udata; in siw_create_cq()
1158 if (size < 1 || size > sdev->attrs.max_cqe) { in siw_create_cq()
1592 struct ib_srq_attr *attrs = &init_attrs->attr; in siw_create_srq() local
1607 if (attrs->max_wr == 0 || attrs->max_wr > SIW_MAX_SRQ_WR || in siw_create_srq()
1608 attrs->max_sge > SIW_MAX_SGE || attrs->srq_limit > attrs->max_wr) { in siw_create_srq()
1612 srq->max_sge = attrs->max_sge; in siw_create_srq()
1613 srq->num_rqe = roundup_pow_of_two(attrs->max_wr); in siw_create_srq()
1614 srq->limit = attrs->srq_limit; in siw_create_srq()
1678 int siw_modify_srq(struct ib_srq *base_srq, struct ib_srq_attr *attrs, in siw_modify_srq() argument
1693 if (attrs->srq_limit) { in siw_modify_srq()
1694 if (unlikely(attrs->srq_limit > srq->num_rqe)) { in siw_modify_srq()
1702 srq->limit = attrs->srq_limit; in siw_modify_srq()
1715 int siw_query_srq(struct ib_srq *base_srq, struct ib_srq_attr *attrs) in siw_query_srq() argument
1722 attrs->max_wr = srq->num_rqe; in siw_query_srq()
1723 attrs->max_sge = srq->max_sge; in siw_query_srq()
1724 attrs->srq_limit = srq->limit; in siw_query_srq()
1831 if (qp->attrs.flags & SIW_QP_IN_DESTROY) in siw_qp_event()