[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID:
<BL1PR12MB5144C8E5EA47A1B65530E71CF725A@BL1PR12MB5144.namprd12.prod.outlook.com>
Date: Tue, 29 Jul 2025 18:58:58 +0000
From: "Deucher, Alexander" <Alexander.Deucher@....com>
To: Yunshui Jiang <jiangyunshui@...inos.cn>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>
CC: "chriistian.koenig@....com" <chriistian.koenig@....com>,
"linux-doc@...r.kernel.org" <linux-doc@...r.kernel.org>,
"willy@...radead.org" <willy@...radead.org>
Subject: RE: [PATCH v2] drm/amdgpu: use kmalloc_array() instead of kmalloc()
[Public]
Applied. Thanks!
Alex
> -----Original Message-----
> From: Yunshui Jiang <jiangyunshui@...inos.cn>
> Sent: Thursday, July 24, 2025 2:30 AM
> To: linux-kernel@...r.kernel.org
> Cc: Deucher, Alexander <Alexander.Deucher@....com>;
> chriistian.koenig@....com; linux-doc@...r.kernel.org; willy@...radead.org;
> Yunshui Jiang <jiangyunshui@...inos.cn>
> Subject: [PATCH v2] drm/amdgpu: use kmalloc_array() instead of kmalloc()
>
> Use kmalloc_array() instead of kmalloc() with multiplication.
> kmalloc_array() is a safer way because of its multiply overflow check.
>
> ---
> Changes in v2:
> Fixed incorrect kmalloc usage in v1:
> - *bps = kmalloc(data->count, sizeof(struct ras_badpage), GFP_KERNEL);
> + *bps = kmalloc_array(data->count, sizeof(struct ras_badpage),
> GFP_KERNEL);
>
> Signed-off-by: Yunshui Jiang <jiangyunshui@...inos.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
Powered by blists - more mailing lists