Re: [PATCH] drm/tiny: Use kmalloc_array() instead of kmalloc()

Thomas Zimmermann
2025-10-19T14:47:25Z

Hi

Am 19.10.25 um 16:34 schrieb Greg KH:
> On Sun, Oct 19, 2025 at 04:12:28PM +0100, Mehdi Ben Hadj Khelifa wrote:
>> Replace kmalloc() with kmalloc_array() to correctly
>> handle array allocations and benefit from built-in overflow checking[1].
>>
>> [1]:https://docs.kernel.org/process/deprecated.html
>>
>> Signed-off-by: Mehdi Ben Hadj Khelifa <mehdi.benhadjkhelifa@gmail.com>
>> ---
>> drivers/gpu/drm/tiny/repaper.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/tiny/repaper.c b/drivers/gpu/drm/tiny/repaper.c
>> index 4824f863fdba..290132c24ff9 100644
>> --- a/drivers/gpu/drm/tiny/repaper.c
>> +++ b/drivers/gpu/drm/tiny/repaper.c
>> @@ -534,7 +534,7 @@ static int repaper_fb_dirty(struct drm_framebuffer *fb, const struct iosys_map *
>> DRM_DEBUG("Flushing [FB:%d] st=%ums\n", fb->base.id,
>> epd->factored_stage_time);
>>
>> - buf = kmalloc(fb->width * fb->height / 8, GFP_KERNEL);
>> + buf = kmalloc_array(fb->height / 8, fb->width, GFP_KERNEL);
> This isn't an array, so this function change doesn't seem to make much
> sense, right? The size should have already been checked earlier in the
> call change to be correct.

Yes, we've recently received plenty of these pointless changes. The
correct code would compute the number of bytes per pixel using
drm_format_info_min_pitch() and multiply with fb->height. The latter
could (maybe) use kmalloc_array(). It would still not be an array in the
common sense.

Best regards
Thomas

>
> thanks,
>
> greg k-h

--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)