[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZkHlHAj1aPEToEYO@bogus>
Date: Mon, 13 May 2024 11:02:04 +0100
From: Sudeep Holla <sudeep.holla@....com>
To: Vincenzo Mezzela <vincenzo.mezzela@...il.com>
Cc: gregkh@...uxfoundation.org, javier.carrasco.cruz@...il.com,
Sudeep Holla <sudeep.holla@....com>, julia.lawall@...ia.fr,
linux-kernel@...r.kernel.org, rafael@...nel.org,
skhan@...uxfoundation.org
Subject: Re: [PATCH 0/2 v4] drivers: arch_topology: introduce automatic
cleanup feature
On Mon, May 13, 2024 at 10:13:02AM +0200, Vincenzo Mezzela wrote:
> This patch series introduces the automatic cleanup feature using the __free
> attribute. With this modification, resources allocated with __free are
> automatically released at the end of the scope.
>
> In some cases, modifying the structure of loops is necessary to utilize the
> __free attribute effectively. For example:
>
> ```
> struct device_node *t;
>
> do {
> t = of_get_child_by_name(..);
> if (t) {
>
> // some code here
>
> of_node_put(t);
> }
> i++;
>
> } while (t);
>
> // ^
> // |
> // device_node here
> ```
>
> To use the __free attribute here, we need to move the declaration of the device_node
> within the loop, otherwise the automatic cleanup is called only at the end of the
> function, and not at end of each iteration of the loop, being it scope-based.
>
> However, moving the declaration of the device_node within the loop, we can no
> longer check the exit condition in the loop statement, being it outside
> the loop's scope.
>
> Therefore, this work is split into two patches. The first patch moves the exit
> condition of the loop directly within the loop's scope with an explicit break
> statement:
>
> ```
> struct device_node *t;
>
> do {
> t = of_get_child_by_name(..);
> if (!t)
> break;
>
> // some code here
>
> of_node_put(t);
> i++;
>
> } while (1);
> ```
> The second patch eliminates all of_node_put() calls, introducing the __free
> attribute to the device_node.
>
>
> changes in v2:
> - check loop exit condition within the loop
> - add cleanup.h header
>
> changes in v3:
> - split patch in two
> - fix misalignment
> - fix checkpatch warnings
> - replace break with return statement where possible
>
> changes in v4:
> - fix commit subject
> - fix coding style
>
Looks good now to me.
Acked-by: Sudeep Holla <sudeep.holla@....com>
It is merge window now, so there is a chance that it may get lost. You
may have to post it again at -rc1. Greg can then pick it up for v6.11
--
Regards,
Sudeep
Powered by blists - more mailing lists