RDMA/bnxt_re: Fix the offset for GenP7 adapters for user applications
authorSelvin Xavier <selvin.xavier@broadcom.com>
Tue, 19 Dec 2023 12:11:40 +0000 (04:11 -0800)
committerLeon Romanovsky <leon@kernel.org>
Wed, 20 Dec 2023 07:45:45 +0000 (09:45 +0200)
User Doorbell page indexes start at an offset for GenP7 adapters.
Fix the offset that will be used for user doorbell page indexes.

Fixes: a62d68581441 ("RDMA/bnxt_re: Update the BAR offsets")
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Link: https://lore.kernel.org/r/1702987900-5363-1-git-send-email-selvin.xavier@broadcom.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/bnxt_re/main.c

index eb03ebad2e5adbcd33d3dd7d6b0c4c7d614ed1a6..f022c922fae5183cb6860092e5bd0662d22f1764 100644 (file)
@@ -108,12 +108,14 @@ static void bnxt_re_set_db_offset(struct bnxt_re_dev *rdev)
                dev_info(rdev_to_dev(rdev),
                         "Couldn't get DB bar size, Low latency framework is disabled\n");
        /* set register offsets for both UC and WC */
-       if (bnxt_qplib_is_chip_gen_p7(cctx))
+       if (bnxt_qplib_is_chip_gen_p7(cctx)) {
                res->dpi_tbl.ucreg.offset = offset;
-       else
+               res->dpi_tbl.wcreg.offset = en_dev->l2_db_size;
+       } else {
                res->dpi_tbl.ucreg.offset = res->is_vf ? BNXT_QPLIB_DBR_VF_DB_OFFSET :
                                                         BNXT_QPLIB_DBR_PF_DB_OFFSET;
-       res->dpi_tbl.wcreg.offset = res->dpi_tbl.ucreg.offset;
+               res->dpi_tbl.wcreg.offset = res->dpi_tbl.ucreg.offset;
+       }
 
        /* If WC mapping is disabled by L2 driver then en_dev->l2_db_size
         * is equal to the DB-Bar actual size. This indicates that L2