* [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: 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-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: 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).