@@ -314,13 +314,13 @@ static inline int ib_init_umem_odp(struct ib_umem_odp *umem_odp,
314314 */
315315 umem_odp -> interval_tree .last -- ;
316316
317- umem_odp -> page_list = vzalloc (
318- array_size ( sizeof (* umem_odp -> page_list ), pages ) );
317+ umem_odp -> page_list = kvcalloc (
318+ pages , sizeof (* umem_odp -> page_list ), GFP_KERNEL );
319319 if (!umem_odp -> page_list )
320320 return - ENOMEM ;
321321
322- umem_odp -> dma_list =
323- vzalloc ( array_size ( sizeof (* umem_odp -> dma_list ), pages ) );
322+ umem_odp -> dma_list = kvcalloc (
323+ pages , sizeof (* umem_odp -> dma_list ), GFP_KERNEL );
324324 if (!umem_odp -> dma_list ) {
325325 ret = - ENOMEM ;
326326 goto out_page_list ;
@@ -354,9 +354,9 @@ static inline int ib_init_umem_odp(struct ib_umem_odp *umem_odp,
354354
355355out_unlock :
356356 mutex_unlock (& ctx -> per_mm_list_lock );
357- vfree (umem_odp -> dma_list );
357+ kvfree (umem_odp -> dma_list );
358358out_page_list :
359- vfree (umem_odp -> page_list );
359+ kvfree (umem_odp -> page_list );
360360 return ret ;
361361}
362362
@@ -532,8 +532,8 @@ void ib_umem_odp_release(struct ib_umem_odp *umem_odp)
532532 ib_umem_odp_unmap_dma_pages (umem_odp , ib_umem_start (umem_odp ),
533533 ib_umem_end (umem_odp ));
534534 remove_umem_from_per_mm (umem_odp );
535- vfree (umem_odp -> dma_list );
536- vfree (umem_odp -> page_list );
535+ kvfree (umem_odp -> dma_list );
536+ kvfree (umem_odp -> page_list );
537537 }
538538 put_per_mm (umem_odp );
539539 mmdrop (umem_odp -> umem .owning_mm );
0 commit comments