From: Mehdi Ben Hadj Khelifa <mehdi.benhadjkhelifa@gmail.com>
To: Shuah Khan <skhan@linuxfoundation.org>,
Jani Nikula <jani.nikula@linux.intel.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
Greg KH <gregkh@linuxfoundation.org>
Cc: lanzano.alex@gmail.com, maarten.lankhorst@linux.intel.com,
mripard@kernel.org, airlied@gmail.com, simona@ffwll.ch,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
david.hunter.linux@gmail.com, khalid@kernel.org,
linux-kernel-mentees@lists.linuxfoundation.org
Subject: Re: [PATCH] drm/tiny: Use kmalloc_array() instead of kmalloc()
Date: Mon, 20 Oct 2025 22:11:24 +0100 [thread overview]
Message-ID: <b0b1c2e9-c367-4e9c-b931-d3e1b0ba7f5b@gmail.com> (raw)
In-Reply-To: <ea12faad-1735-4a49-a70d-d4cac5629042@linuxfoundation.org>
On 10/20/25 9:06 PM, Shuah Khan wrote:
> On 10/20/25 03:50, Jani Nikula wrote:
>> On Sun, 19 Oct 2025, Mehdi Ben Hadj Khelifa
>> <mehdi.benhadjkhelifa@gmail.com> wrote:
>>> On 10/19/25 3:47 PM, Thomas Zimmermann wrote:
>>>> 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);
>>
>> Also worth emphasizing that this is wildly wrong for any height that is
>> not a multiple of 8.
>>
>> And I thought I shot down a similar patch not long ago.
>>
>> Is there some tool that suggests doing this? Fix the tool instead
>> please.
>>
>
> They are documented in https://docs.kernel.org/process/deprecated.html
> Mu understanding is that this document lists deprecates APIs so people
> don't keep adding new ones.
>
> I didn't get the impression that we are supposed to go delete them from
> the kernel and cause a churn.
>
I have sent an appropriate v2 specifically to suit the case that we have
here. But the document[1] specifically quotes the following:"
Dynamic size calculations (especially multiplication) should not be
performed in memory allocator (or similar) function arguments due to the
risk of them overflowing. This could lead to values wrapping around and
a smaller allocation being made than the caller was expecting. Using
those allocations could lead to linear overflows of heap memory and
other misbehaviors. (One exception to this is literal values where the
compiler can warn if they might overflow. However, the preferred way in
these cases is to refactor the code as suggested below to avoid the
open-coded arithmetic.)"
Specifically mentionned the refactor of the code base in such cases
which is why i'm doing the patches in the first place.Also i'm trying
the best to send patches related to the issue where such issues of
overflow are present or to be consistent with the same API used within
the same subsystem.
[1]:https://docs.kernel.org/process/deprecated.html
Best Regards,
Mehdi Ben Hadj Khelifa> thanks,
> -- Shuah
next prev parent reply other threads:[~2025-10-20 20:11 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-19 15:12 [PATCH] drm/tiny: Use kmalloc_array() instead of kmalloc() Mehdi Ben Hadj Khelifa
2025-10-19 14:34 ` Greg KH
2025-10-19 14:47 ` Thomas Zimmermann
2025-10-19 16:03 ` Mehdi Ben Hadj Khelifa
2025-10-20 9:50 ` Jani Nikula
2025-10-20 10:49 ` Thomas Zimmermann
2025-10-20 20:06 ` Shuah Khan
2025-10-20 21:11 ` Mehdi Ben Hadj Khelifa [this message]
2025-10-20 20:22 ` Shuah Khan
2025-10-20 20:22 ` Shuah Khan
2025-10-20 22:00 ` Mehdi Ben Hadj Khelifa
-- strict thread matches above, loose matches on Subject: below --
2025-09-23 11:00 Rahul Kumar
2025-09-23 13:51 ` Jani Nikula
2025-09-24 6:07 ` Rahul Kumar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b0b1c2e9-c367-4e9c-b931-d3e1b0ba7f5b@gmail.com \
--to=mehdi.benhadjkhelifa@gmail.com \
--cc=airlied@gmail.com \
--cc=david.hunter.linux@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=jani.nikula@linux.intel.com \
--cc=khalid@kernel.org \
--cc=lanzano.alex@gmail.com \
--cc=linux-kernel-mentees@lists.linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=simona@ffwll.ch \
--cc=skhan@linuxfoundation.org \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox