Lines Matching defs:attrs
52 ilog2(qp->attrs.sq_size)) |
55 ilog2(qp->attrs.rq_size)) |
80 (qp->attrs.sq_size << SQEBB_SHIFT);
82 (qp->attrs.rq_size << RQE_SHIFT);
127 qp->attrs.cookie =
319 attr->max_mr_size = dev->attrs.max_mr_size;
323 attr->max_qp = dev->attrs.max_qp - 1;
324 attr->max_qp_wr = min(dev->attrs.max_send_wr, dev->attrs.max_recv_wr);
325 attr->max_qp_rd_atom = dev->attrs.max_ord;
326 attr->max_qp_init_rd_atom = dev->attrs.max_ird;
327 attr->max_res_rd_atom = dev->attrs.max_qp * dev->attrs.max_ird;
330 ibdev->local_dma_lkey = dev->attrs.local_dma_key;
331 attr->max_send_sge = dev->attrs.max_send_sge;
332 attr->max_recv_sge = dev->attrs.max_recv_sge;
333 attr->max_sge_rd = dev->attrs.max_sge_rd;
334 attr->max_cq = dev->attrs.max_cq - 1;
335 attr->max_cqe = dev->attrs.max_cqe;
336 attr->max_mr = dev->attrs.max_mr;
337 attr->max_pd = dev->attrs.max_pd;
338 attr->max_mw = dev->attrs.max_mw;
342 if (dev->attrs.cap_flags & ERDMA_DEV_CAP_FLAGS_ATOMIC)
345 attr->fw_ver = dev->attrs.fw_version;
360 ether_addr_copy(gid->raw, dev->attrs.peer_addr);
448 struct ib_qp_init_attr *attrs)
450 if ((attrs->cap.max_send_wr > dev->attrs.max_send_wr) ||
451 (attrs->cap.max_recv_wr > dev->attrs.max_recv_wr) ||
452 (attrs->cap.max_send_sge > dev->attrs.max_send_sge) ||
453 (attrs->cap.max_recv_sge > dev->attrs.max_recv_sge) ||
454 (attrs->cap.max_inline_data > ERDMA_MAX_INLINE) ||
455 !attrs->cap.max_send_wr || !attrs->cap.max_recv_wr) {
463 struct ib_qp_init_attr *attrs)
465 if (attrs->qp_type != IB_QPT_RC)
468 if (attrs->srq)
471 if (!attrs->send_cq || !attrs->recv_cq)
487 WARPPED_BUFSIZE(qp->attrs.sq_size << SQEBB_SHIFT),
493 WARPPED_BUFSIZE(qp->attrs.rq_size << RQE_SHIFT),
498 struct ib_qp_init_attr *attrs)
503 if (attrs->sq_sig_type == IB_SIGNAL_ALL_WR)
514 kqp->swr_tbl = vmalloc_array(qp->attrs.sq_size, sizeof(u64));
515 kqp->rwr_tbl = vmalloc_array(qp->attrs.rq_size, sizeof(u64));
519 size = (qp->attrs.sq_size << SQEBB_SHIFT) + ERDMA_EXTRA_BUFFER_SIZE;
525 size = (qp->attrs.rq_size << RQE_SHIFT) + ERDMA_EXTRA_BUFFER_SIZE;
531 kqp->sq_db_info = kqp->sq_buf + (qp->attrs.sq_size << SQEBB_SHIFT);
532 kqp->rq_db_info = kqp->rq_buf + (qp->attrs.rq_size << RQE_SHIFT);
692 if (!(dev->attrs.cap_flags & ERDMA_DEV_CAP_FLAGS_MTT_VA))
873 if (len < (ALIGN(qp->attrs.sq_size * SQEBB_SIZE, ERDMA_HW_PAGE_SIZE) +
874 qp->attrs.rq_size * RQE_SIZE))
878 qp->attrs.sq_size << SQEBB_SHIFT, 0, va,
883 rq_offset = ALIGN(qp->attrs.sq_size << SQEBB_SHIFT, ERDMA_HW_PAGE_SIZE);
887 qp->attrs.rq_size << RQE_SHIFT, 0, va + rq_offset,
919 int erdma_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *attrs,
930 ret = erdma_qp_validate_cap(dev, attrs);
934 ret = erdma_qp_validate_attr(dev, attrs);
938 qp->scq = to_ecq(attrs->send_cq);
939 qp->rcq = to_ecq(attrs->recv_cq);
941 qp->attrs.cc = dev->attrs.cc;
948 XA_LIMIT(1, dev->attrs.max_qp - 1),
955 qp->attrs.sq_size = roundup_pow_of_two(attrs->cap.max_send_wr *
957 qp->attrs.rq_size = roundup_pow_of_two(attrs->cap.max_recv_wr);
972 uresp.num_sqe = qp->attrs.sq_size;
973 uresp.num_rqe = qp->attrs.rq_size;
981 init_kernel_qp(dev, qp, attrs);
984 qp->attrs.max_send_sge = attrs->cap.max_send_sge;
985 qp->attrs.max_recv_sge = attrs->cap.max_recv_sge;
986 qp->attrs.state = ERDMA_QP_STATE_IDLE;
1152 if (!len || len > dev->attrs.max_mr_size)
1286 WARPPED_BUFSIZE(qp->attrs.rq_size << RQE_SHIFT),
1290 WARPPED_BUFSIZE(qp->attrs.sq_size << SQEBB_SHIFT),
1450 !!(dev->attrs.cap_flags &
1559 qp_attr->cap.max_send_wr = qp->attrs.sq_size;
1560 qp_attr->cap.max_recv_wr = qp->attrs.rq_size;
1561 qp_attr->cap.max_send_sge = qp->attrs.max_send_sge;
1562 qp_attr->cap.max_recv_sge = qp->attrs.max_recv_sge;
1565 qp_attr->max_rd_atomic = qp->attrs.irq_size;
1566 qp_attr->max_dest_rd_atomic = qp->attrs.orq_size;
1628 if (depth > dev->attrs.max_cqe)
1637 XA_LIMIT(1, dev->attrs.max_cq - 1),