RDMA/qedr: Remove fbo and zbva from the MR
authorJason Gunthorpe <jgg@nvidia.com>
Fri, 4 Sep 2020 22:41:57 +0000 (19:41 -0300)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 11 Sep 2020 13:24:54 +0000 (10:24 -0300)
zbva is always false, so fbo is never read.

A 'zero-based-virtual-address' is simply IOVA == 0, and the driver already
supports this.

Link: https://lore.kernel.org/r/16-v2-270386b7e60b+28f4-umem_1_jgg@nvidia.com
Acked-by: Michal KalderonĀ <michal.kalderon@marvell.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/qedr/verbs.c
drivers/net/ethernet/qlogic/qed/qed_rdma.c
include/linux/qed/qed_rdma_if.h

index 9319778f5df40563df0a26f88d2717fce4bf3ce9..f7bfc43f0f5c64d47a2e3cf68b2116eee43864b9 100644 (file)
@@ -2882,10 +2882,8 @@ struct ib_mr *qedr_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 len,
        mr->hw_mr.pbl_two_level = mr->info.pbl_info.two_layered;
        mr->hw_mr.pbl_page_size_log = ilog2(mr->info.pbl_info.pbl_size);
        mr->hw_mr.page_size_log = PAGE_SHIFT;
-       mr->hw_mr.fbo = ib_umem_offset(mr->umem);
        mr->hw_mr.length = len;
        mr->hw_mr.vaddr = usr_addr;
-       mr->hw_mr.zbva = false;
        mr->hw_mr.phy_mr = false;
        mr->hw_mr.dma_mr = false;
 
@@ -2978,10 +2976,8 @@ static struct qedr_mr *__qedr_alloc_mr(struct ib_pd *ibpd,
        mr->hw_mr.pbl_ptr = 0;
        mr->hw_mr.pbl_two_level = mr->info.pbl_info.two_layered;
        mr->hw_mr.pbl_page_size_log = ilog2(mr->info.pbl_info.pbl_size);
-       mr->hw_mr.fbo = 0;
        mr->hw_mr.length = 0;
        mr->hw_mr.vaddr = 0;
-       mr->hw_mr.zbva = false;
        mr->hw_mr.phy_mr = true;
        mr->hw_mr.dma_mr = false;
 
index 03894584415df7a405be0d9120fc986157e055f8..0df6e058775292d484440b41cb117d3617cba343 100644 (file)
@@ -1521,7 +1521,7 @@ qed_rdma_register_tid(void *rdma_cxt,
                  params->pbl_two_level);
 
        SET_FIELD(flags, RDMA_REGISTER_TID_RAMROD_DATA_ZERO_BASED,
-                 params->zbva);
+                 false);
 
        SET_FIELD(flags, RDMA_REGISTER_TID_RAMROD_DATA_PHY_MR, params->phy_mr);
 
@@ -1583,15 +1583,7 @@ qed_rdma_register_tid(void *rdma_cxt,
        p_ramrod->pd = cpu_to_le16(params->pd);
        p_ramrod->length_hi = (u8)(params->length >> 32);
        p_ramrod->length_lo = DMA_LO_LE(params->length);
-       if (params->zbva) {
-               /* Lower 32 bits of the registered MR address.
-                * In case of zero based MR, will hold FBO
-                */
-               p_ramrod->va.hi = 0;
-               p_ramrod->va.lo = cpu_to_le32(params->fbo);
-       } else {
-               DMA_REGPAIR_LE(p_ramrod->va, params->vaddr);
-       }
+       DMA_REGPAIR_LE(p_ramrod->va, params->vaddr);
        DMA_REGPAIR_LE(p_ramrod->pbl_base, params->pbl_ptr);
 
        /* DIF */
index f464d85e88a410039b15def5b615bcd9c4d77594..aeb242cefebfa844baf4c3dbd6c9313c629542fd 100644 (file)
@@ -242,10 +242,8 @@ struct qed_rdma_register_tid_in_params {
        bool pbl_two_level;
        u8 pbl_page_size_log;
        u8 page_size_log;
-       u32 fbo;
        u64 length;
        u64 vaddr;
-       bool zbva;
        bool phy_mr;
        bool dma_mr;