Skip to content

Commit

Permalink
RDMA/odp: Use kvcalloc for the dma_list and page_list
Browse files Browse the repository at this point in the history
There is no specific need for these to be in the valloc space, let the
system decide automatically how to do the allocation.

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Leon Romanovsky <[email protected]>
Signed-off-by: Jason Gunthorpe <[email protected]>
  • Loading branch information
jgunthorpe committed Aug 21, 2019
1 parent 204e3e5 commit 3782495
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions drivers/infiniband/core/umem_odp.c
Original file line number Diff line number Diff line change
Expand Up @@ -314,13 +314,13 @@ static inline int ib_init_umem_odp(struct ib_umem_odp *umem_odp,
*/
umem_odp->interval_tree.last--;

umem_odp->page_list = vzalloc(
array_size(sizeof(*umem_odp->page_list), pages));
umem_odp->page_list = kvcalloc(
pages, sizeof(*umem_odp->page_list), GFP_KERNEL);
if (!umem_odp->page_list)
return -ENOMEM;

umem_odp->dma_list =
vzalloc(array_size(sizeof(*umem_odp->dma_list), pages));
umem_odp->dma_list = kvcalloc(
pages, sizeof(*umem_odp->dma_list), GFP_KERNEL);
if (!umem_odp->dma_list) {
ret = -ENOMEM;
goto out_page_list;
Expand Down Expand Up @@ -354,9 +354,9 @@ static inline int ib_init_umem_odp(struct ib_umem_odp *umem_odp,

out_unlock:
mutex_unlock(&ctx->per_mm_list_lock);
vfree(umem_odp->dma_list);
kvfree(umem_odp->dma_list);
out_page_list:
vfree(umem_odp->page_list);
kvfree(umem_odp->page_list);
return ret;
}

Expand Down Expand Up @@ -532,8 +532,8 @@ void ib_umem_odp_release(struct ib_umem_odp *umem_odp)
ib_umem_odp_unmap_dma_pages(umem_odp, ib_umem_start(umem_odp),
ib_umem_end(umem_odp));
remove_umem_from_per_mm(umem_odp);
vfree(umem_odp->dma_list);
vfree(umem_odp->page_list);
kvfree(umem_odp->dma_list);
kvfree(umem_odp->page_list);
}
put_per_mm(umem_odp);
mmdrop(umem_odp->umem.owning_mm);
Expand Down

0 comments on commit 3782495

Please sign in to comment.