linux-parisc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Helge Deller <deller@gmx.de>
To: Rolf Eike Beer <eike-kernel@sf-tec.de>,
	Li zeming <zeming@nfschina.com>,
	James.Bottomley@hansenpartnership.com
Cc: linux-parisc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] parisc: Increase the usage check of kmalloc allocated object a
Date: Wed, 14 Sep 2022 11:04:33 +0200	[thread overview]
Message-ID: <3a72852c-2f28-2916-f02c-b52cb06efd7d@gmx.de> (raw)
In-Reply-To: <1668528.WaZXzWfjLs@eto.sf-tec.de>

On 9/14/22 08:43, Rolf Eike Beer wrote:
> Am Mittwoch, 14. September 2022, 08:18:19 CEST schrieb Helge Deller:
>> On 9/14/22 08:04, Li zeming wrote:
>>> In the case of memory allocation failure, no alignment operation is
>>> required.
>>>
>>> Signed-off-by: Li zeming <zeming@nfschina.com>
>>> ---
>>>
>>>    drivers/parisc/iosapic.c | 4 +++-
>>>    1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c
>>> index 3a8c98615634..33de438916d3 100644
>>> --- a/drivers/parisc/iosapic.c
>>> +++ b/drivers/parisc/iosapic.c
>>> @@ -229,7 +229,9 @@ static struct irt_entry *iosapic_alloc_irt(int
>>> num_entries)>
>>>    	 * 4-byte alignment on 32-bit kernels
>>>    	 */
>>>
>>>    	a = (unsigned long)kmalloc(sizeof(struct irt_entry) * num_entries
> + 8,
>>>    	GFP_KERNEL);>
>>> -	a = (a + 7UL) & ~7UL;
>>> +	if (a)
>>> +		a = (a + 7UL) & ~7UL;
>>> +
>>
>> As you said, the adjustment isn't required, but it's still ok.
>> So I think the additional "if" isn't necessary and so I'm not
>> applying your patch.
>>
>> Anyway, thanks for your help to try to improve the code!
>
> I was about to say the same, but from looking at the code I don't think what
> is in there is correct either. The comment seems outdated, because
> __assume_kmalloc_alignment, which is __alignof__(unsigned long long). This
> code is untouched for the entire git history, so maybe we can just change the
> whole thing to
>
>    return kcalloc(num_entries, sizeof(struct irt_entry))
>
> now?

Yes, your proposal is good.
Anyone want to send a patch (with a small comment that kcalloc() will return
at least the required 8-byte alignment)?

> And these functions end up propagating an allocation error in this file and it
> will never reach kernel/setup.c, which seems bad.

That part I don't understand.
The return value of iosapic_alloc_irt() is checked afterwards, but you probably
meant something else?

> But I guess the only point where this really can go wrong if the PDC
> returns an absurdly large number of entries.
Helge

  reply	other threads:[~2022-09-14  9:15 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-14  6:04 [PATCH] parisc: Increase the usage check of kmalloc allocated object a Li zeming
2022-09-14  6:18 ` Helge Deller
2022-09-14  6:43   ` Rolf Eike Beer
2022-09-14  9:04     ` Helge Deller [this message]
2022-09-14 14:25       ` Rolf Eike Beer
2022-09-15  5:44         ` Helge Deller

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=3a72852c-2f28-2916-f02c-b52cb06efd7d@gmx.de \
    --to=deller@gmx.de \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=eike-kernel@sf-tec.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=zeming@nfschina.com \
    /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;
as well as URLs for NNTP newsgroup(s).