public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Rosen Penev <rosenp@gmail.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] w1: simplify allocation of w1_master
Date: Fri, 27 Mar 2026 07:42:06 +0100	[thread overview]
Message-ID: <538aaa11-d32c-40ac-935d-b52cc5ce73e5@kernel.org> (raw)
In-Reply-To: <CAKxU2N-yAxUdnkDfy4rwDLAVqq-J7etV2QnQ3J5+KW5-NDmyGg@mail.gmail.com>

On 26/03/2026 20:08, Rosen Penev wrote:
> On Thu, Mar 26, 2026 at 3:31 AM Krzysztof Kozlowski <krzk@kernel.org> wrote:
>>
>> On 24/03/2026 03:15, Rosen Penev wrote:
>>> Convert bus_master to a flexible array member as it's being used as one
>>> with the old C89 + 1 pointer trick.
>>>
>>> Signed-off-by: Rosen Penev <rosenp@gmail.com>
>>> ---
>>>  drivers/w1/w1_int.c | 4 +---
>>>  include/linux/w1.h  | 4 ++--
>>>  2 files changed, 3 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/w1/w1_int.c b/drivers/w1/w1_int.c
>>> index 19a0ea28e9f3..a0bb97608564 100644
>>> --- a/drivers/w1/w1_int.c
>>> +++ b/drivers/w1/w1_int.c
>>> @@ -31,12 +31,10 @@ static struct w1_master *w1_alloc_dev(u32 id, int slave_count, int slave_ttl,
>>>       /*
>>>        * We are in process context(kernel thread), so can sleep.
>>>        */
>>> -     dev = kzalloc(sizeof(struct w1_master) + sizeof(struct w1_bus_master), GFP_KERNEL);
>>> +     dev = kzalloc_flex(*dev, bus_master, 1);
>>>       if (!dev)
>>>               return NULL;
>>>
>>> -     dev->bus_master = (struct w1_bus_master *)(dev + 1);
>>> -
>>>       dev->owner              = THIS_MODULE;
>>>       dev->max_slave_count    = slave_count;
>>>       dev->slave_count        = 0;
>>> diff --git a/include/linux/w1.h b/include/linux/w1.h
>>> index 064805bfae3f..7379a9ddefc0 100644
>>> --- a/include/linux/w1.h
>>> +++ b/include/linux/w1.h
>>> @@ -236,9 +236,9 @@ struct w1_master {
>>>       struct device_driver    *driver;
>>>       struct device           dev;
>>>
>>> -     struct w1_bus_master    *bus_master;
>>> -
>>>       u32                     seq;
>>> +
>>> +     struct w1_bus_master    bus_master[];
>>
>> Code does not use it as flexible array member, does it? Why this cannot
>> be just two kzalloc's - one for w1_master and then next for bus_master?
>> Or embed it directly (composition) in w1_master?
> two kzalloc or kzalloc + kcalloc just does two allocations needlessly.

Needless is marking something as flexible array while it is not such.
You write readable and obvious code, not something to optimize number of
allocs.

> 
> It can be embedded, yes.
>>
>> Best regards,
>> Krzysztof


Best regards,
Krzysztof

      reply	other threads:[~2026-03-27  6:42 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-24  2:15 [PATCH] w1: simplify allocation of w1_master Rosen Penev
2026-03-26 10:31 ` Krzysztof Kozlowski
2026-03-26 19:08   ` Rosen Penev
2026-03-27  6:42     ` Krzysztof Kozlowski [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=538aaa11-d32c-40ac-935d-b52cc5ce73e5@kernel.org \
    --to=krzk@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rosenp@gmail.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