drm/amdkfd: use kvcalloc() instead of kvmalloc() in kfd_migrate
authorYang Wang <KevinYang.Wang@amd.com>
Thu, 21 Apr 2022 12:24:55 +0000 (20:24 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 22 Apr 2022 18:49:54 +0000 (14:49 -0400)
simplify programming with existing functions.

Signed-off-by: Yang Wang <KevinYang.Wang@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
drivers/gpu/drm/amd/amdkfd/kfd_svm.c

index 3a29d85..43cd477 100644 (file)
@@ -410,7 +410,6 @@ svm_migrate_vma_to_vram(struct amdgpu_device *adev, struct svm_range *prange,
        struct migrate_vma migrate;
        unsigned long cpages = 0;
        dma_addr_t *scratch;
-       size_t size;
        void *buf;
        int r = -ENOMEM;
 
@@ -421,9 +420,9 @@ svm_migrate_vma_to_vram(struct amdgpu_device *adev, struct svm_range *prange,
        migrate.flags = MIGRATE_VMA_SELECT_SYSTEM;
        migrate.pgmap_owner = SVM_ADEV_PGMAP_OWNER(adev);
 
-       size = 2 * sizeof(*migrate.src) + sizeof(uint64_t) + sizeof(dma_addr_t);
-       size *= npages;
-       buf = kvmalloc(size, GFP_KERNEL | __GFP_ZERO);
+       buf = kvcalloc(npages,
+                      2 * sizeof(*migrate.src) + sizeof(uint64_t) + sizeof(dma_addr_t),
+                      GFP_KERNEL);
        if (!buf)
                goto out;
 
@@ -665,7 +664,6 @@ svm_migrate_vma_to_ram(struct amdgpu_device *adev, struct svm_range *prange,
        struct dma_fence *mfence = NULL;
        struct migrate_vma migrate;
        dma_addr_t *scratch;
-       size_t size;
        void *buf;
        int r = -ENOMEM;
 
@@ -676,9 +674,10 @@ svm_migrate_vma_to_ram(struct amdgpu_device *adev, struct svm_range *prange,
        migrate.flags = MIGRATE_VMA_SELECT_DEVICE_PRIVATE;
        migrate.pgmap_owner = SVM_ADEV_PGMAP_OWNER(adev);
 
-       size = 2 * sizeof(*migrate.src) + sizeof(uint64_t) + sizeof(dma_addr_t);
-       size *= npages;
-       buf = kvmalloc(size, GFP_KERNEL | __GFP_ZERO);
+       buf = kvcalloc(npages,
+                      2 * sizeof(*migrate.src) + sizeof(uint64_t) + sizeof(dma_addr_t),
+                      GFP_KERNEL);
+
        if (!buf)
                goto out;
 
index 459fa07..aed2f6f 100644 (file)
@@ -149,8 +149,7 @@ svm_range_dma_map_dev(struct amdgpu_device *adev, struct svm_range *prange,
        int i, r;
 
        if (!addr) {
-               addr = kvmalloc_array(prange->npages, sizeof(*addr),
-                                     GFP_KERNEL | __GFP_ZERO);
+               addr = kvcalloc(prange->npages, sizeof(*addr), GFP_KERNEL);
                if (!addr)
                        return -ENOMEM;
                prange->dma_addr[gpuidx] = addr;