Re: [PATCH] drm/amdkfd: Use kvmalloc instead of kmalloc for VCRAT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[AMD Public Use]


Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>

From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> on behalf of Kent Russell <kent.russell@xxxxxxx>
Sent: Monday, September 21, 2020 10:27 AM
To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx <amd-gfx@xxxxxxxxxxxxxxxxxxxxx>
Cc: Russell, Kent <Kent.Russell@xxxxxxx>
Subject: [PATCH] drm/amdkfd: Use kvmalloc instead of kmalloc for VCRAT
 
Since we're dynamically allocating the CPU VCRAT, use kvmalloc in case
the allocation size is huge.

Signed-off-by: Kent Russell <kent.russell@xxxxxxx>
---
 drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
index 99182b8e9152..c50e9f634d6c 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
@@ -797,7 +797,8 @@ int kfd_create_crat_image_acpi(void **crat_image, size_t *size)
                 return -ENODATA;
         }
 
-       pcrat_image = kmemdup(crat_table, crat_table->length, GFP_KERNEL);
+       pcrat_image = kvmalloc(crat_table->length, GFP_KERNEL);
+       memcpy(pcrat_image, crat_table, crat_table->length);
         if (!pcrat_image)
                 return -ENOMEM;
 
@@ -1383,7 +1384,7 @@ int kfd_create_crat_image_virtual(void **crat_image, size_t *size,
                         num_nodes * (sizeof(struct crat_subtype_computeunit) +
                         sizeof(struct crat_subtype_memory) +
                         (num_nodes - 1) * sizeof(struct crat_subtype_iolink));
-               pcrat_image = kmalloc(dyn_size, GFP_KERNEL);
+               pcrat_image = kvmalloc(dyn_size, GFP_KERNEL);
                 if (!pcrat_image)
                         return -ENOMEM;
                 *size = dyn_size;
@@ -1393,7 +1394,7 @@ int kfd_create_crat_image_virtual(void **crat_image, size_t *size,
         case COMPUTE_UNIT_GPU:
                 if (!kdev)
                         return -EINVAL;
-               pcrat_image = kmalloc(VCRAT_SIZE_FOR_GPU, GFP_KERNEL);
+               pcrat_image = kvmalloc(VCRAT_SIZE_FOR_GPU, GFP_KERNEL);
                 if (!pcrat_image)
                         return -ENOMEM;
                 *size = VCRAT_SIZE_FOR_GPU;
@@ -1412,7 +1413,7 @@ int kfd_create_crat_image_virtual(void **crat_image, size_t *size,
         if (!ret)
                 *crat_image = pcrat_image;
         else
-               kfree(pcrat_image);
+               kvfree(pcrat_image);
 
         return ret;
 }
--
2.17.1

_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://nam11.safelinks.protection.outlook.com/?url="">
_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux