Re: [PATCH] RDMA/irdma: Use kvzalloc for paged memory DMA address array

From: Carlos Bilbao

Date: Wed Jan 21 2026 - 14:00:36 EST


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@xxxxxxxxxx>
> ---
> 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)
>
>