RDMA/qedr: Fix reporting max_{send/recv}_wr attrs
authorKamal Heib <kamalheib1@gmail.com>
Mon, 6 Dec 2021 20:13:14 +0000 (22:13 +0200)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 7 Dec 2021 18:59:26 +0000 (14:59 -0400)
Fix the wrongly reported max_send_wr and max_recv_wr attributes for user
QP by making sure to save their valuse on QP creation, so when query QP is
called the attributes will be reported correctly.

Fixes: cecbcddf6461 ("qedr: Add support for QP verbs")
Link: https://lore.kernel.org/r/20211206201314.124947-1-kamalheib1@gmail.com
Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
Acked-by: Michal KalderonĀ <michal.kalderon@marvell.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/qedr/verbs.c

index 9100009..a534766 100644 (file)
@@ -1931,6 +1931,7 @@ static int qedr_create_user_qp(struct qedr_dev *dev,
        /* db offset was calculated in copy_qp_uresp, now set in the user q */
        if (qedr_qp_has_sq(qp)) {
                qp->usq.db_addr = ctx->dpi_addr + uresp.sq_db_offset;
+               qp->sq.max_wr = attrs->cap.max_send_wr;
                rc = qedr_db_recovery_add(dev, qp->usq.db_addr,
                                          &qp->usq.db_rec_data->db_data,
                                          DB_REC_WIDTH_32B,
@@ -1941,6 +1942,7 @@ static int qedr_create_user_qp(struct qedr_dev *dev,
 
        if (qedr_qp_has_rq(qp)) {
                qp->urq.db_addr = ctx->dpi_addr + uresp.rq_db_offset;
+               qp->rq.max_wr = attrs->cap.max_recv_wr;
                rc = qedr_db_recovery_add(dev, qp->urq.db_addr,
                                          &qp->urq.db_rec_data->db_data,
                                          DB_REC_WIDTH_32B,