drivers/infiniband/hw/irdma/utils.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Allocate array chunk->dmainfo.dmaaddrs using kvzalloc() to allow the
allocation to fall back to vmalloc when contiguous memory is unavailable
(instead of failing and logging page allocation warnings).
Signed-off-by: Carlos Bilbao (Lambda) <carlos.bilbao@kernel.org>
---
drivers/infiniband/hw/irdma/utils.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/infiniband/hw/irdma/utils.c
b/drivers/infiniband/hw/irdma/utils.c
index 0422787592d8..59ef9856fd25 100644
--- a/drivers/infiniband/hw/irdma/utils.c
+++ b/drivers/infiniband/hw/irdma/utils.c
@@ -2257,7 +2257,7 @@ void irdma_pble_free_paged_mem(struct irdma_chunk
*chunk)
chunk->pg_cnt);
done:
- kfree(chunk->dmainfo.dmaaddrs);
+ kvfree(chunk->dmainfo.dmaaddrs);
chunk->dmainfo.dmaaddrs = NULL;
vfree(chunk->vaddr);
chunk->vaddr = NULL;
@@ -2274,7 +2274,7 @@ int irdma_pble_get_paged_mem(struct irdma_chunk
*chunk, u32 pg_cnt)
u32 size;
void *va;
- chunk->dmainfo.dmaaddrs = kzalloc(pg_cnt << 3, GFP_KERNEL);
+ chunk->dmainfo.dmaaddrs = kvzalloc(pg_cnt << 3, GFP_KERNEL);
if (!chunk->dmainfo.dmaaddrs)
return -ENOMEM;
@@ -2295,7 +2295,7 @@ int irdma_pble_get_paged_mem(struct irdma_chunk
*chunk, u32 pg_cnt)
return 0;
err:
- kfree(chunk->dmainfo.dmaaddrs);
+ kvfree(chunk->dmainfo.dmaaddrs);
chunk->dmainfo.dmaaddrs = NULL;
return -ENOMEM;
-- 2.50.1 (Apple Git-155)
On Wed, Jan 21, 2026 at 10:54:36AM -0800, Carlos Bilbao wrote: > Allocate array chunk->dmainfo.dmaaddrs using kvzalloc() to allow the > allocation to fall back to vmalloc when contiguous memory is unavailable > (instead of failing and logging page allocation warnings). > > Signed-off-by: Carlos Bilbao (Lambda) <carlos.bilbao@kernel.org> > --- > drivers/infiniband/hw/irdma/utils.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) This patch doesn't apply to rdma/for-next. Thanks
From: Carlos Bilbao <carlos.bilbao@kernel.org>
Allocate array chunk->dmainfo.dmaaddrs using kvzalloc() to allow the
allocation to fall back to vmalloc when contiguous memory is unavailable
(instead of failing and logging page allocation warnings).
Acked-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Signed-off-by: Carlos Bilbao (Lambda) <carlos.bilbao@kernel.org>
---
drivers/infiniband/hw/irdma/utils.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/infiniband/hw/irdma/utils.c b/drivers/infiniband/hw/irdma/utils.c
index 13d7499131d4..6aac6d314564 100644
--- a/drivers/infiniband/hw/irdma/utils.c
+++ b/drivers/infiniband/hw/irdma/utils.c
@@ -2239,7 +2239,7 @@ void irdma_pble_free_paged_mem(struct irdma_chunk *chunk)
chunk->pg_cnt);
done:
- kfree(chunk->dmainfo.dmaaddrs);
+ kvfree(chunk->dmainfo.dmaaddrs);
chunk->dmainfo.dmaaddrs = NULL;
vfree(chunk->vaddr);
chunk->vaddr = NULL;
@@ -2256,7 +2256,7 @@ int irdma_pble_get_paged_mem(struct irdma_chunk *chunk, u32 pg_cnt)
u32 size;
void *va;
- chunk->dmainfo.dmaaddrs = kzalloc(pg_cnt << 3, GFP_KERNEL);
+ chunk->dmainfo.dmaaddrs = kvzalloc(pg_cnt << 3, GFP_KERNEL);
if (!chunk->dmainfo.dmaaddrs)
return -ENOMEM;
@@ -2277,7 +2277,7 @@ int irdma_pble_get_paged_mem(struct irdma_chunk *chunk, u32 pg_cnt)
return 0;
err:
- kfree(chunk->dmainfo.dmaaddrs);
+ kvfree(chunk->dmainfo.dmaaddrs);
chunk->dmainfo.dmaaddrs = NULL;
return -ENOMEM;
--
2.43.0
On Tue, 27 Jan 2026 17:44:46 -0800, carlos.bilbao@kernel.org wrote:
> Allocate array chunk->dmainfo.dmaaddrs using kvzalloc() to allow the
> allocation to fall back to vmalloc when contiguous memory is unavailable
> (instead of failing and logging page allocation warnings).
>
>
Applied, thanks!
[1/1] RDMA/irdma: Use kvzalloc for paged memory DMA address array
https://git.kernel.org/rdma/rdma/c/959d2c356e32ab
Best regards,
--
Leon Romanovsky <leon@kernel.org>
> -----Original Message----- > From: Carlos Bilbao <carlos.bilbao@lambdal.com> > Sent: Wednesday, January 21, 2026 12:55 PM > To: mustafa.ismail@intel.com; shiraz.saleem@intel.com; jgg@ziepe.ca; > leon@kernel.org > Cc: bilbao@vt.edu; linux-rdma@vger.kernel.org; linux-kernel@vger.kernel.org; > carlos.bilbao@kernel.org > Subject: [PATCH] RDMA/irdma: Use kvzalloc for paged memory DMA address > array > > Allocate array chunk->dmainfo.dmaaddrs using kvzalloc() to allow the > allocation to fall back to vmalloc when contiguous memory is unavailable > (instead of failing and logging page allocation warnings). > > Signed-off-by: Carlos Bilbao (Lambda) <carlos.bilbao@kernel.org> Acked-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com> > --- > drivers/infiniband/hw/irdma/utils.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/infiniband/hw/irdma/utils.c > b/drivers/infiniband/hw/irdma/utils.c > index 0422787592d8..59ef9856fd25 100644 > --- a/drivers/infiniband/hw/irdma/utils.c > +++ b/drivers/infiniband/hw/irdma/utils.c > @@ -2257,7 +2257,7 @@ void irdma_pble_free_paged_mem(struct > irdma_chunk > *chunk) > chunk->pg_cnt); > > done: > - kfree(chunk->dmainfo.dmaaddrs); > + kvfree(chunk->dmainfo.dmaaddrs); > chunk->dmainfo.dmaaddrs = NULL; > vfree(chunk->vaddr); > chunk->vaddr = NULL; > @@ -2274,7 +2274,7 @@ int irdma_pble_get_paged_mem(struct > irdma_chunk > *chunk, u32 pg_cnt) > u32 size; > void *va; > > - chunk->dmainfo.dmaaddrs = kzalloc(pg_cnt << 3, GFP_KERNEL); > + chunk->dmainfo.dmaaddrs = kvzalloc(pg_cnt << 3, GFP_KERNEL); > if (!chunk->dmainfo.dmaaddrs) > return -ENOMEM; > > @@ -2295,7 +2295,7 @@ int irdma_pble_get_paged_mem(struct > irdma_chunk > *chunk, u32 pg_cnt) > > return 0; > err: > - kfree(chunk->dmainfo.dmaaddrs); > + kvfree(chunk->dmainfo.dmaaddrs); > chunk->dmainfo.dmaaddrs = NULL; > > return -ENOMEM; > -- 2.50.1 (Apple Git-155) > >
Looks like Mustafa is no longer at Intel [1]. Does anyone know how to reach them, or Shiraz? Their email addresses appear to be bouncing as well. Maybe you do, Andrew? [1] https://www.phoronix.com/news/Intel-More-Orphans-Maintainers On 1/21/26 10:54 AM, Carlos Bilbao wrote: > Allocate array chunk->dmainfo.dmaaddrs using kvzalloc() to allow the > allocation to fall back to vmalloc when contiguous memory is unavailable > (instead of failing and logging page allocation warnings). > > Signed-off-by: Carlos Bilbao (Lambda) <carlos.bilbao@kernel.org> > --- > drivers/infiniband/hw/irdma/utils.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/infiniband/hw/irdma/utils.c > b/drivers/infiniband/hw/irdma/utils.c > index 0422787592d8..59ef9856fd25 100644 > --- a/drivers/infiniband/hw/irdma/utils.c > +++ b/drivers/infiniband/hw/irdma/utils.c > @@ -2257,7 +2257,7 @@ void irdma_pble_free_paged_mem(struct irdma_chunk > *chunk) > chunk->pg_cnt); > > done: > - kfree(chunk->dmainfo.dmaaddrs); > + kvfree(chunk->dmainfo.dmaaddrs); > chunk->dmainfo.dmaaddrs = NULL; > vfree(chunk->vaddr); > chunk->vaddr = NULL; > @@ -2274,7 +2274,7 @@ int irdma_pble_get_paged_mem(struct irdma_chunk > *chunk, u32 pg_cnt) > u32 size; > void *va; > > - chunk->dmainfo.dmaaddrs = kzalloc(pg_cnt << 3, GFP_KERNEL); > + chunk->dmainfo.dmaaddrs = kvzalloc(pg_cnt << 3, GFP_KERNEL); > if (!chunk->dmainfo.dmaaddrs) > return -ENOMEM; > > @@ -2295,7 +2295,7 @@ int irdma_pble_get_paged_mem(struct irdma_chunk > *chunk, u32 pg_cnt) > > return 0; > err: > - kfree(chunk->dmainfo.dmaaddrs); > + kvfree(chunk->dmainfo.dmaaddrs); > chunk->dmainfo.dmaaddrs = NULL; > > return -ENOMEM; > -- 2.50.1 (Apple Git-155) > >
© 2016 - 2026 Red Hat, Inc.