@@ -314,13 +314,13 @@ static inline int ib_init_umem_odp(struct ib_umem_odp *umem_odp,
314
314
*/
315
315
umem_odp -> interval_tree .last -- ;
316
316
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 );
319
319
if (!umem_odp -> page_list )
320
320
return - ENOMEM ;
321
321
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 );
324
324
if (!umem_odp -> dma_list ) {
325
325
ret = - ENOMEM ;
326
326
goto out_page_list ;
@@ -354,9 +354,9 @@ static inline int ib_init_umem_odp(struct ib_umem_odp *umem_odp,
354
354
355
355
out_unlock :
356
356
mutex_unlock (& ctx -> per_mm_list_lock );
357
- vfree (umem_odp -> dma_list );
357
+ kvfree (umem_odp -> dma_list );
358
358
out_page_list :
359
- vfree (umem_odp -> page_list );
359
+ kvfree (umem_odp -> page_list );
360
360
return ret ;
361
361
}
362
362
@@ -532,8 +532,8 @@ void ib_umem_odp_release(struct ib_umem_odp *umem_odp)
532
532
ib_umem_odp_unmap_dma_pages (umem_odp , ib_umem_start (umem_odp ),
533
533
ib_umem_end (umem_odp ));
534
534
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 );
537
537
}
538
538
put_per_mm (umem_odp );
539
539
mmdrop (umem_odp -> umem .owning_mm );
0 commit comments