All of lore.kernel.org
 help / color / mirror / Atom feed
From: quic_zijuhu <quic_zijuhu@quicinc.com>
To: Greg KH <gregkh@linuxfoundation.org>
Cc: <rafael@kernel.org>, <andriy.shevchenko@linux.intel.com>,
	<brgl@bgdev.pl>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v1] devres: Fix devm_krealloc() allocating memory with wrong size
Date: Sun, 16 Jun 2024 18:22:43 +0800	[thread overview]
Message-ID: <d2679169-4334-4939-8ec8-3af142ebbb3f@quicinc.com> (raw)
In-Reply-To: <2024061611-cyclist-hardiness-c15f@gregkh>

On 6/16/2024 6:17 PM, Greg KH wrote:
> On Sun, Jun 16, 2024 at 06:10:02PM +0800, quic_zijuhu wrote:
>> On 6/16/2024 6:02 PM, Greg KH wrote:
>>> On Sun, Jun 16, 2024 at 05:54:15PM +0800, Zijun Hu wrote:
>>>> Kernel API devm_krealloc() calls alloc_dr() with wrong argument
>>>> @total_new_size, and it will cause more memory to be allocated
>>>> than required, fixed by using @new_size as alloc_dr()'s argument.
>>>>
>>>> Fixes: f82485722e5d ("devres: provide devm_krealloc()")
>>>> Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
>>>> ---
>>>>  drivers/base/devres.c | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/base/devres.c b/drivers/base/devres.c
>>>> index 3df0025d12aa..1cf87ddf1f55 100644
>>>> --- a/drivers/base/devres.c
>>>> +++ b/drivers/base/devres.c
>>>> @@ -898,7 +898,7 @@ void *devm_krealloc(struct device *dev, void *ptr, size_t new_size, gfp_t gfp)
>>>>  	 * taking the lock as most probably the caller uses GFP_KERNEL.
>>>>  	 */
>>>>  	new_dr = alloc_dr(devm_kmalloc_release,
>>>> -			  total_new_size, gfp, dev_to_node(dev));
>>>> +			  new_size, gfp, dev_to_node(dev));
>>>
>>> Wait, are you sure?  Did you properly test this?  What is the actual
>>> savings and how do you handle the fact that you are now not allocating
>>> the space reserved for the devres structure itself?
>>>
>> sure even if i did not test it.
>> beware that alloc_dr() will call check_dr_size() to reserve space for
>> devres structure.
>>
>> it will reserve the devres structure two times if using wrong
>> @total_new_size. it is obvious wrong.
> 
> Ah, I missed that, that is tricky.  Please document this better when you
> resubmit a new version.
> 
okay. will send v2.
> And of course, please test it.
okay.
> 
> thanks,
> 
> greg k-h


      reply	other threads:[~2024-06-16 10:22 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-16  9:54 [PATCH v1] devres: Fix devm_krealloc() allocating memory with wrong size Zijun Hu
2024-06-16  9:58 ` Greg KH
2024-06-16 10:02 ` Greg KH
2024-06-16 10:10   ` quic_zijuhu
2024-06-16 10:17     ` Greg KH
2024-06-16 10:22       ` quic_zijuhu [this message]

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=d2679169-4334-4939-8ec8-3af142ebbb3f@quicinc.com \
    --to=quic_zijuhu@quicinc.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=brgl@bgdev.pl \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.