]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amdgpu: use kmalloc_array() instead of kmalloc()
authorYunshui Jiang <jiangyunshui@kylinos.cn>
Thu, 24 Jul 2025 01:37:53 +0000 (09:37 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 4 Aug 2025 18:30:31 +0000 (14:30 -0400)
Use kmalloc_array() instead of kmalloc() with multiplication.
kmalloc_array() is a safer way because of its multiply overflow check.

Signed-off-by: Yunshui Jiang <jiangyunshui@kylinos.cn>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c

index a2af7c835962aa2730a5b320cc45ab70892557b8..e6b8c2cf80ea88122877f084eede2534fc3a03bc 100644 (file)
@@ -2622,7 +2622,7 @@ static int amdgpu_ras_badpages_read(struct amdgpu_device *adev,
                goto out;
        }
 
-       *bps = kmalloc(sizeof(struct ras_badpage) * data->count, GFP_KERNEL);
+       *bps = kmalloc_array(data->count, sizeof(struct ras_badpage), GFP_KERNEL);
        if (!*bps) {
                ret = -ENOMEM;
                goto out;
@@ -2786,7 +2786,7 @@ static int amdgpu_ras_realloc_eh_data_space(struct amdgpu_device *adev,
        unsigned int old_space = data->count + data->space_left;
        unsigned int new_space = old_space + pages;
        unsigned int align_space = ALIGN(new_space, 512);
-       void *bps = kmalloc(align_space * sizeof(*data->bps), GFP_KERNEL);
+       void *bps = kmalloc_array(align_space, sizeof(*data->bps), GFP_KERNEL);
 
        if (!bps) {
                return -ENOMEM;