netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] RDMA/mana_ib: fix a bug in calculating the wrong page table index when 64kb page table is used
@ 2024-08-28 20:06 longli
  2024-08-28 20:06 ` [PATCH net] RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page longli
  2024-08-29 10:24 ` [PATCH net] RDMA/mana_ib: fix a bug in calculating the wrong page table index when 64kb page table is used Leon Romanovsky
  0 siblings, 2 replies; 6+ messages in thread
From: longli @ 2024-08-28 20:06 UTC (permalink / raw)
  To: Jason Gunthorpe, Leon Romanovsky, Ajay Sharma, Konstantin Taranov,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
  Cc: linux-rdma, netdev, linux-kernel, Long Li, stable

From: Long Li <longli@microsoft.com>

MANA hardware uses 4k page size. When calculating the page table index,
it should use the hardware page size, not the system page size.

Cc: stable@vger.kernel.org
Fixes: 0266a177631d ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Long Li <longli@microsoft.com>
---
 drivers/infiniband/hw/mana/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/mana/main.c b/drivers/infiniband/hw/mana/main.c
index d13abc954d2a..f68f54aea820 100644
--- a/drivers/infiniband/hw/mana/main.c
+++ b/drivers/infiniband/hw/mana/main.c
@@ -383,7 +383,7 @@ static int mana_ib_gd_create_dma_region(struct mana_ib_dev *dev, struct ib_umem
 
 	create_req->length = umem->length;
 	create_req->offset_in_page = ib_umem_dma_offset(umem, page_sz);
-	create_req->gdma_page_type = order_base_2(page_sz) - PAGE_SHIFT;
+	create_req->gdma_page_type = order_base_2(page_sz) - MANA_PAGE_SHIFT;
 	create_req->page_count = num_pages_total;
 
 	ibdev_dbg(&dev->ib_dev, "size_dma_region %lu num_pages_total %lu\n",
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH net] RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page
  2024-08-28 20:06 [PATCH net] RDMA/mana_ib: fix a bug in calculating the wrong page table index when 64kb page table is used longli
@ 2024-08-28 20:06 ` longli
  2024-08-29 13:53   ` Simon Horman
  2024-08-29 10:24 ` [PATCH net] RDMA/mana_ib: fix a bug in calculating the wrong page table index when 64kb page table is used Leon Romanovsky
  1 sibling, 1 reply; 6+ messages in thread
From: longli @ 2024-08-28 20:06 UTC (permalink / raw)
  To: Jason Gunthorpe, Leon Romanovsky, Ajay Sharma, Konstantin Taranov,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
  Cc: linux-rdma, netdev, linux-kernel, Long Li, stable

From: Long Li <longli@microsoft.com>

When mapping doorbell page from user-mode, the driver should use the system
page size as the doorbell is allocated via mmap() from user-mode.

Cc: stable@vger.kernel.org
Fixes: 0266a177631d ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Signed-off-by: Long Li <longli@microsoft.com>
---
 drivers/infiniband/hw/mana/main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/hw/mana/main.c b/drivers/infiniband/hw/mana/main.c
index f68f54aea820..b26c4ebec2e0 100644
--- a/drivers/infiniband/hw/mana/main.c
+++ b/drivers/infiniband/hw/mana/main.c
@@ -511,13 +511,13 @@ int mana_ib_mmap(struct ib_ucontext *ibcontext, struct vm_area_struct *vma)
 	      PAGE_SHIFT;
 	prot = pgprot_writecombine(vma->vm_page_prot);
 
-	ret = rdma_user_mmap_io(ibcontext, vma, pfn, gc->db_page_size, prot,
+	ret = rdma_user_mmap_io(ibcontext, vma, pfn, PAGE_SIZE, prot,
 				NULL);
 	if (ret)
 		ibdev_dbg(ibdev, "can't rdma_user_mmap_io ret %d\n", ret);
 	else
 		ibdev_dbg(ibdev, "mapped I/O pfn 0x%llx page_size %u, ret %d\n",
-			  pfn, gc->db_page_size, ret);
+			  pfn, PAGE_SIZE, ret);
 
 	return ret;
 }
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH net] RDMA/mana_ib: fix a bug in calculating the wrong page table index when 64kb page table is used
  2024-08-28 20:06 [PATCH net] RDMA/mana_ib: fix a bug in calculating the wrong page table index when 64kb page table is used longli
  2024-08-28 20:06 ` [PATCH net] RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page longli
@ 2024-08-29 10:24 ` Leon Romanovsky
  2024-08-30  0:56   ` Long Li
  1 sibling, 1 reply; 6+ messages in thread
From: Leon Romanovsky @ 2024-08-29 10:24 UTC (permalink / raw)
  To: longli
  Cc: Jason Gunthorpe, Ajay Sharma, Konstantin Taranov, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, linux-rdma, netdev,
	linux-kernel, stable

On Wed, Aug 28, 2024 at 01:06:08PM -0700, longli@linuxonhyperv.com wrote:
> From: Long Li <longli@microsoft.com>
> 
> MANA hardware uses 4k page size. When calculating the page table index,
> it should use the hardware page size, not the system page size.
> 
> Cc: stable@vger.kernel.org
> Fixes: 0266a177631d ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
> Signed-off-by: Long Li <longli@microsoft.com>
> ---
>  drivers/infiniband/hw/mana/main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

These two patches are RDMA ones, please fix the target tree, rephrase
the commit title to simplify it and resend.

Thanks

> 
> diff --git a/drivers/infiniband/hw/mana/main.c b/drivers/infiniband/hw/mana/main.c
> index d13abc954d2a..f68f54aea820 100644
> --- a/drivers/infiniband/hw/mana/main.c
> +++ b/drivers/infiniband/hw/mana/main.c
> @@ -383,7 +383,7 @@ static int mana_ib_gd_create_dma_region(struct mana_ib_dev *dev, struct ib_umem
>  
>  	create_req->length = umem->length;
>  	create_req->offset_in_page = ib_umem_dma_offset(umem, page_sz);
> -	create_req->gdma_page_type = order_base_2(page_sz) - PAGE_SHIFT;
> +	create_req->gdma_page_type = order_base_2(page_sz) - MANA_PAGE_SHIFT;
>  	create_req->page_count = num_pages_total;
>  
>  	ibdev_dbg(&dev->ib_dev, "size_dma_region %lu num_pages_total %lu\n",
> -- 
> 2.17.1
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH net] RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page
  2024-08-28 20:06 ` [PATCH net] RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page longli
@ 2024-08-29 13:53   ` Simon Horman
  2024-08-30  0:54     ` Long Li
  0 siblings, 1 reply; 6+ messages in thread
From: Simon Horman @ 2024-08-29 13:53 UTC (permalink / raw)
  To: longli
  Cc: Jason Gunthorpe, Leon Romanovsky, Ajay Sharma, Konstantin Taranov,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	linux-rdma, netdev, linux-kernel, Long Li, stable

On Wed, Aug 28, 2024 at 01:06:09PM -0700, longli@linuxonhyperv.com wrote:
> From: Long Li <longli@microsoft.com>
> 
> When mapping doorbell page from user-mode, the driver should use the system
> page size as the doorbell is allocated via mmap() from user-mode.
> 
> Cc: stable@vger.kernel.org
> Fixes: 0266a177631d ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
> Signed-off-by: Long Li <longli@microsoft.com>
> ---
>  drivers/infiniband/hw/mana/main.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/mana/main.c b/drivers/infiniband/hw/mana/main.c
> index f68f54aea820..b26c4ebec2e0 100644
> --- a/drivers/infiniband/hw/mana/main.c
> +++ b/drivers/infiniband/hw/mana/main.c
> @@ -511,13 +511,13 @@ int mana_ib_mmap(struct ib_ucontext *ibcontext, struct vm_area_struct *vma)
>  	      PAGE_SHIFT;
>  	prot = pgprot_writecombine(vma->vm_page_prot);
>  
> -	ret = rdma_user_mmap_io(ibcontext, vma, pfn, gc->db_page_size, prot,
> +	ret = rdma_user_mmap_io(ibcontext, vma, pfn, PAGE_SIZE, prot,
>  				NULL);
>  	if (ret)
>  		ibdev_dbg(ibdev, "can't rdma_user_mmap_io ret %d\n", ret);
>  	else
>  		ibdev_dbg(ibdev, "mapped I/O pfn 0x%llx page_size %u, ret %d\n",
> -			  pfn, gc->db_page_size, ret);
> +			  pfn, PAGE_SIZE, ret);

This is not a full review, but according to both clang-18 and gcc-14,
this patch should also update the format specifier from %u to %lu.

>  
>  	return ret;
>  }
> -- 
> 2.17.1
> 
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH net] RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page
  2024-08-29 13:53   ` Simon Horman
@ 2024-08-30  0:54     ` Long Li
  0 siblings, 0 replies; 6+ messages in thread
From: Long Li @ 2024-08-30  0:54 UTC (permalink / raw)
  To: Simon Horman, longli@linuxonhyperv.com
  Cc: Jason Gunthorpe, Leon Romanovsky, Ajay Sharma, Konstantin Taranov,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	linux-rdma@vger.kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, stable@vger.kernel.org

> Subject: Re: [PATCH net] RDMA/mana_ib: use the correct page size for
> mapping user-mode doorbell page
> 
> On Wed, Aug 28, 2024 at 01:06:09PM -0700, longli@linuxonhyperv.com
> wrote:
> > From: Long Li <longli@microsoft.com>
> >
> > When mapping doorbell page from user-mode, the driver should use the
> > system page size as the doorbell is allocated via mmap() from user-mode.
> >
> > Cc: stable@vger.kernel.org
> > Fixes: 0266a177631d ("RDMA/mana_ib: Add a driver for Microsoft Azure
> > Network Adapter")
> > Signed-off-by: Long Li <longli@microsoft.com>
> > ---
> >  drivers/infiniband/hw/mana/main.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/infiniband/hw/mana/main.c
> > b/drivers/infiniband/hw/mana/main.c
> > index f68f54aea820..b26c4ebec2e0 100644
> > --- a/drivers/infiniband/hw/mana/main.c
> > +++ b/drivers/infiniband/hw/mana/main.c
> > @@ -511,13 +511,13 @@ int mana_ib_mmap(struct ib_ucontext
> *ibcontext, struct vm_area_struct *vma)
> >  	      PAGE_SHIFT;
> >  	prot = pgprot_writecombine(vma->vm_page_prot);
> >
> > -	ret = rdma_user_mmap_io(ibcontext, vma, pfn, gc->db_page_size,
> prot,
> > +	ret = rdma_user_mmap_io(ibcontext, vma, pfn, PAGE_SIZE, prot,
> >  				NULL);
> >  	if (ret)
> >  		ibdev_dbg(ibdev, "can't rdma_user_mmap_io ret %d\n", ret);
> >  	else
> >  		ibdev_dbg(ibdev, "mapped I/O pfn 0x%llx page_size %u,
> ret %d\n",
> > -			  pfn, gc->db_page_size, ret);
> > +			  pfn, PAGE_SIZE, ret);
> 
> This is not a full review, but according to both clang-18 and gcc-14, this patch
> should also update the format specifier from %u to %lu.

Thank you. Will send v2 to fix it.

Long

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH net] RDMA/mana_ib: fix a bug in calculating the wrong page table index when 64kb page table is used
  2024-08-29 10:24 ` [PATCH net] RDMA/mana_ib: fix a bug in calculating the wrong page table index when 64kb page table is used Leon Romanovsky
@ 2024-08-30  0:56   ` Long Li
  0 siblings, 0 replies; 6+ messages in thread
From: Long Li @ 2024-08-30  0:56 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Jason Gunthorpe, Ajay Sharma, Konstantin Taranov, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	linux-rdma@vger.kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, stable@vger.kernel.org

> Subject: Re: [PATCH net] RDMA/mana_ib: fix a bug in calculating the wrong
> page table index when 64kb page table is used
> 
> On Wed, Aug 28, 2024 at 01:06:08PM -0700, longli@linuxonhyperv.com
> wrote:
> > From: Long Li <longli@microsoft.com>
> >
> > MANA hardware uses 4k page size. When calculating the page table
> > index, it should use the hardware page size, not the system page size.
> >
> > Cc: stable@vger.kernel.org
> > Fixes: 0266a177631d ("RDMA/mana_ib: Add a driver for Microsoft Azure
> > Network Adapter")
> > Signed-off-by: Long Li <longli@microsoft.com>
> > ---
> >  drivers/infiniband/hw/mana/main.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> These two patches are RDMA ones, please fix the target tree, rephrase the
> commit title to simplify it and resend.
> 
> Thanks

I'm sending v2 to have those fixed.

Long

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-08-30  0:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-28 20:06 [PATCH net] RDMA/mana_ib: fix a bug in calculating the wrong page table index when 64kb page table is used longli
2024-08-28 20:06 ` [PATCH net] RDMA/mana_ib: use the correct page size for mapping user-mode doorbell page longli
2024-08-29 13:53   ` Simon Horman
2024-08-30  0:54     ` Long Li
2024-08-29 10:24 ` [PATCH net] RDMA/mana_ib: fix a bug in calculating the wrong page table index when 64kb page table is used Leon Romanovsky
2024-08-30  0:56   ` Long Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).