mbox series

[0/2] hwmon: use device_for_each_child_node_scoped()

Message ID 20240404-hwmon_device_for_each_child_node_scoped-v1-0-53997abde43c@gmail.com (mailing list archive)
Headers show
Series hwmon: use device_for_each_child_node_scoped() | expand

Message

Javier Carrasco April 4, 2024, 11:13 a.m. UTC
Switch to the _scoped() version introduced in commit 365130fd47af
("device property: Introduce device_for_each_child_node_scoped()")
to remove the need for manual calling of fwnode_handle_put() in the
paths where the code exits the loop early.

There are only two users of the non scoped version in the hwmon
subsystem:

- ltc2991
- gsc-hwmon

All calls of fwnode_handle_put() were in error paths.

This series is based on the master branch of linux-next (next-20240404)
to profif from the scoped version of device_for_each_child_node().

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
Javier Carrasco (2):
      hwmon: (ltc2991) use device_for_each_child_node_scoped()
      hwmon: (gsc-hwmon) use device_for_each_child_node_scoped()

 drivers/hwmon/gsc-hwmon.c |  7 +------
 drivers/hwmon/ltc2991.c   | 11 +++--------
 2 files changed, 4 insertions(+), 14 deletions(-)
---
base-commit: 2b3d5988ae2cb5cd945ddbc653f0a71706231fdd
change-id: 20240404-hwmon_device_for_each_child_node_scoped-6e581c1d8a31

Best regards,

Comments

Javier Carrasco June 7, 2024, 9 p.m. UTC | #1
On 04/04/2024 13:13, Javier Carrasco wrote:
> Switch to the _scoped() version introduced in commit 365130fd47af
> ("device property: Introduce device_for_each_child_node_scoped()")
> to remove the need for manual calling of fwnode_handle_put() in the
> paths where the code exits the loop early.
> 
> There are only two users of the non scoped version in the hwmon
> subsystem:
> 
> - ltc2991
> - gsc-hwmon
> 
> All calls of fwnode_handle_put() were in error paths.
> 
> This series is based on the master branch of linux-next (next-20240404)
> to profif from the scoped version of device_for_each_child_node().
> 
> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
> ---
> Javier Carrasco (2):
>       hwmon: (ltc2991) use device_for_each_child_node_scoped()
>       hwmon: (gsc-hwmon) use device_for_each_child_node_scoped()
> 
>  drivers/hwmon/gsc-hwmon.c |  7 +------
>  drivers/hwmon/ltc2991.c   | 11 +++--------
>  2 files changed, 4 insertions(+), 14 deletions(-)
> ---
> base-commit: 2b3d5988ae2cb5cd945ddbc653f0a71706231fdd
> change-id: 20240404-hwmon_device_for_each_child_node_scoped-6e581c1d8a31
> 
> Best regards,


Hi, this patch appears as "superseded" in the patchwork, but I could not
find what series actually superseded it.

I just noticed that the cleanup in ltc2991.c turns out to be a bug fix
as well because there is an error path if "shunt-resistor-micro-ohms" is
zero that misses the required fwnode_handle_put().

This is something similar like the recently applied fix for the ltc2992
[1], but in this case the _scoped() macro already exists and is in use
in the mainline kernel, and no explicit call to fwnode_handle_put() is
required unless the fix is to be ported to old kernels that don't have
the device_for_each_child_node_scoped() macro.

Link:
https://lore.kernel.org/linux-hwmon/20240523-fwnode_for_each_available_child_node_scoped-v2-0-701f3a03f2fb@gmail.com/
[1]

Best regards,
Javier Carrasco
Guenter Roeck June 7, 2024, 10:11 p.m. UTC | #2
On 6/7/24 14:00, Javier Carrasco wrote:
> On 04/04/2024 13:13, Javier Carrasco wrote:
>> Switch to the _scoped() version introduced in commit 365130fd47af
>> ("device property: Introduce device_for_each_child_node_scoped()")
>> to remove the need for manual calling of fwnode_handle_put() in the
>> paths where the code exits the loop early.
>>
>> There are only two users of the non scoped version in the hwmon
>> subsystem:
>>
>> - ltc2991
>> - gsc-hwmon
>>
>> All calls of fwnode_handle_put() were in error paths.
>>
>> This series is based on the master branch of linux-next (next-20240404)
>> to profif from the scoped version of device_for_each_child_node().
>>
>> Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
>> ---
>> Javier Carrasco (2):
>>        hwmon: (ltc2991) use device_for_each_child_node_scoped()
>>        hwmon: (gsc-hwmon) use device_for_each_child_node_scoped()
>>
>>   drivers/hwmon/gsc-hwmon.c |  7 +------
>>   drivers/hwmon/ltc2991.c   | 11 +++--------
>>   2 files changed, 4 insertions(+), 14 deletions(-)
>> ---
>> base-commit: 2b3d5988ae2cb5cd945ddbc653f0a71706231fdd
>> change-id: 20240404-hwmon_device_for_each_child_node_scoped-6e581c1d8a31
>>
>> Best regards,
> 
> 
> Hi, this patch appears as "superseded" in the patchwork, but I could not
> find what series actually superseded it.
> 
> I just noticed that the cleanup in ltc2991.c turns out to be a bug fix
> as well because there is an error path if "shunt-resistor-micro-ohms" is
> zero that misses the required fwnode_handle_put().
> 
> This is something similar like the recently applied fix for the ltc2992
> [1], but in this case the _scoped() macro already exists and is in use
> in the mainline kernel, and no explicit call to fwnode_handle_put() is
> required unless the fix is to be ported to old kernels that don't have
> the device_for_each_child_node_scoped() macro.
> 
> Link:
> https://lore.kernel.org/linux-hwmon/20240523-fwnode_for_each_available_child_node_scoped-v2-0-701f3a03f2fb@gmail.com/
> [1]
> 

I strongly suspect I confused it with the other series introducing
fwnode_for_each_available_child_node_scoped(). Sorry for the confusion.

Guenter