[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8a0df605-463f-4d61-ad64-a39f3ebb3153@gmail.com>
Date: Tue, 14 May 2024 09:14:03 +0200
From: Vincenzo Mezzela <vincenzo.mezzela@...il.com>
To: Sudeep Holla <sudeep.holla@....com>
Cc: gregkh@...uxfoundation.org, javier.carrasco.cruz@...il.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 13/05/24 12:02, Sudeep Holla wrote:
> 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
Ok, perfect.
Thanks!
Vincenzo
Powered by blists - more mailing lists