Message ID | 16-v2-270386b7e60b+28f4-umem_1_jgg@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Jason Gunthorpe |
Headers | show |
Series | RDMA: Improve use of umem in DMA drivers | expand |
> From: Jason Gunthorpe <jgg@nvidia.com> > Sent: Saturday, September 5, 2020 1:42 AM > zbva is always false, so fbo is never read. > > A 'zero-based-virtual-address' is simply IOVA == 0, and the driver already > supports this. > > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > --- > drivers/infiniband/hw/qedr/verbs.c | 4 ---- > drivers/net/ethernet/qlogic/qed/qed_rdma.c | 12 ++---------- > include/linux/qed/qed_rdma_if.h | 2 -- > 3 files changed, 2 insertions(+), 16 deletions(-) > > diff --git a/drivers/infiniband/hw/qedr/verbs.c > b/drivers/infiniband/hw/qedr/verbs.c > index 278b48443aedba..cca69b4ed354ea 100644 > --- a/drivers/infiniband/hw/qedr/verbs.c > +++ b/drivers/infiniband/hw/qedr/verbs.c > @@ -2878,10 +2878,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; > > @@ -2974,10 +2972,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; > > diff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c > b/drivers/net/ethernet/qlogic/qed/qed_rdma.c > index a4bcde522cdf9d..baa4c36608ea91 100644 > --- a/drivers/net/ethernet/qlogic/qed/qed_rdma.c > +++ b/drivers/net/ethernet/qlogic/qed/qed_rdma.c > @@ -1520,7 +1520,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); > > @@ -1582,15 +1582,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 */ > diff --git a/include/linux/qed/qed_rdma_if.h > b/include/linux/qed/qed_rdma_if.h index f464d85e88a410..aeb242cefebfa8 > 100644 > --- a/include/linux/qed/qed_rdma_if.h > +++ b/include/linux/qed/qed_rdma_if.h > @@ -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; > > -- > 2.28.0 Thanks, Acked-by: Michal Kalderon <michal.kalderon@marvell.com>
diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c index 278b48443aedba..cca69b4ed354ea 100644 --- a/drivers/infiniband/hw/qedr/verbs.c +++ b/drivers/infiniband/hw/qedr/verbs.c @@ -2878,10 +2878,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; @@ -2974,10 +2972,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; diff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c b/drivers/net/ethernet/qlogic/qed/qed_rdma.c index a4bcde522cdf9d..baa4c36608ea91 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_rdma.c +++ b/drivers/net/ethernet/qlogic/qed/qed_rdma.c @@ -1520,7 +1520,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); @@ -1582,15 +1582,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 */ diff --git a/include/linux/qed/qed_rdma_if.h b/include/linux/qed/qed_rdma_if.h index f464d85e88a410..aeb242cefebfa8 100644 --- a/include/linux/qed/qed_rdma_if.h +++ b/include/linux/qed/qed_rdma_if.h @@ -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;
zbva is always false, so fbo is never read. A 'zero-based-virtual-address' is simply IOVA == 0, and the driver already supports this. Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> --- drivers/infiniband/hw/qedr/verbs.c | 4 ---- drivers/net/ethernet/qlogic/qed/qed_rdma.c | 12 ++---------- include/linux/qed/qed_rdma_if.h | 2 -- 3 files changed, 2 insertions(+), 16 deletions(-)