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 <jiangyuns...@kylinos.cn>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index de0944947eaf..12f5a1b9ff8b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -2563,7 +2563,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;
@@ -2719,7 +2719,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;
-- 
2.47.1

Reply via email to