summaryrefslogtreecommitdiff
path: root/drivers/infiniband/hw/usnic
diff options
context:
space:
mode:
authorLeon Romanovsky <leonro@nvidia.com>2026-07-16 05:03:31 -0400
committerLeon Romanovsky <leon@kernel.org>2026-07-20 09:45:43 -0400
commited3760b376384248b2977f67e0f803bad1657f8e (patch)
tree0bab72b1fc989329d71ea89cb67bd6f69816a619 /drivers/infiniband/hw/usnic
parentce5322367c4bd00e51560ffdc07c6c619952967a (diff)
downloadlinux-next-ed3760b376384248b2977f67e0f803bad1657f8e.tar.gz
linux-next-ed3760b376384248b2977f67e0f803bad1657f8e.zip
RDMA/usnic: use kmalloc() for the page pointer array
usnic_uiom_get_pages() uses a page-sized array of struct page pointers as temporary storage for pin_user_pages(). Nothing requires the array to come directly from the page allocator. Use kmalloc() for the array and kfree() after the pinning loop. Link: https://patch.msgid.link/20260715-get_pages-to-kmalloc-v1-3-b0b7fce288be@nvidia.com Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Diffstat (limited to 'drivers/infiniband/hw/usnic')
-rw-r--r--drivers/infiniband/hw/usnic/usnic_uiom.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/usnic/usnic_uiom.c b/drivers/infiniband/hw/usnic/usnic_uiom.c
index 691c64a73516..201c35039a74 100644
--- a/drivers/infiniband/hw/usnic/usnic_uiom.c
+++ b/drivers/infiniband/hw/usnic/usnic_uiom.c
@@ -114,7 +114,7 @@ static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable,
INIT_LIST_HEAD(chunk_list);
- page_list = (struct page **) __get_free_page(GFP_KERNEL);
+ page_list = kmalloc(PAGE_SIZE, GFP_KERNEL);
if (!page_list)
return -ENOMEM;
@@ -182,7 +182,7 @@ out:
mmgrab(uiomr->owning_mm);
mmap_read_unlock(mm);
- free_page((unsigned long) page_list);
+ kfree(page_list);
return ret;
}