mbox series

[v4,00/15] device property / IIO: Use cleanup.h magic for fwnode_handle_put() handling.

Message ID 20240217164249.921878-1-jic23@kernel.org (mailing list archive)
Headers show
Series device property / IIO: Use cleanup.h magic for fwnode_handle_put() handling. | expand

Message

Jonathan Cameron Feb. 17, 2024, 4:42 p.m. UTC
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Sorry for the rapid resend, Andy noticed I'd messed up creating the v3 patch
set with some updates committed in the wrong patch.

Since v3: The updates to alignment of device_for_each_child_node_scopd() were
    in the wrong patch. Move them to patch 4 where they should always
    have been. (thanks Andy!)

Since v2: Thanks to Sakari and Andy for reviews.
- New first patch moving fwnode_handle_put() into property.h
- Tweak alignment in the loop macro
- Pick up tags.
- scopd -> scoped typo fix in some patch descriptions.

As can be seen by the examples from IIO that follow this can save
a reasonable amount of complexity and boiler plate code, often enabling
additional cleanups in related code such as use of
return dev_err_probe().

Given we are now fairly late in the cycle, I'd expect to take this
through the IIO tree and we can make use of it elsewhere next cycle.

Note I don't have the hardware so this is compile tested only.
Hence I'd appreciate some Tested-by tags if anyone can poke one of the
effected drivers.

Julia Lawal has posted some nice coccinelle magic for the DT equivalents.
Referenced from that cover letter.  Similar may help us convert more
drivers to use this new approach, but often hand tweaking can take
additional advantage of other cleanup.h based magic, or things like
return dev_err_probe().
https://lore.kernel.org/all/20240211174237.182947-1-jic23@kernel.org/

Jonathan Cameron (15):
  device property: Move fwnode_handle_put() into property.h
  device property: Add cleanup.h based fwnode_handle_put() scope based
    cleanup.
  iio: temp: ltc2983: Use __free(fwnode_handle) to replace
    fwnode_handle_put() calls
  device property: Introduce device_for_each_child_node_scoped()
  iio: adc: max11410: Use device_for_each_child_node_scoped()
  iio: adc: mcp3564: Use device_for_each_child_node_scoped()
  iio: adc: qcom-spmi-adc5: Use device_for_each_child_node_scoped()
  iio: adc: rzg2l_adc: Use device_for_each_child_node_scoped()
  iio: adc: stm32: Use device_for_each_child_node_scoped()
  iio: adc: ti-ads1015: Use device_for_each_child_node_scoped()
  iio: adc: ti-ads131e08: Use device_for_each_child_node_scoped()
  iio: addac: ad74413r: Use device_for_each_child_node_scoped()
  iio: dac: ad3552r: Use device_for_each_child_node_scoped()
  iio: dac: ad5770r: Use device_for_each_child_node_scoped()
  iio: dac: ltc2688: Use device_for_each_child_node_scoped()

 drivers/base/property.c           | 14 ------
 drivers/iio/adc/max11410.c        | 27 +++--------
 drivers/iio/adc/mcp3564.c         | 16 +++----
 drivers/iio/adc/qcom-spmi-adc5.c  |  7 +--
 drivers/iio/adc/rzg2l_adc.c       | 11 ++---
 drivers/iio/adc/stm32-adc.c       | 63 ++++++++++---------------
 drivers/iio/adc/ti-ads1015.c      |  5 +-
 drivers/iio/adc/ti-ads131e08.c    | 13 ++----
 drivers/iio/addac/ad74413r.c      | 10 +---
 drivers/iio/dac/ad3552r.c         | 51 ++++++++-------------
 drivers/iio/dac/ad5770r.c         | 19 +++-----
 drivers/iio/dac/ltc2688.c         | 24 +++-------
 drivers/iio/temperature/ltc2983.c | 76 ++++++++++---------------------
 include/linux/property.h          | 22 ++++++++-
 14 files changed, 126 insertions(+), 232 deletions(-)

Comments

Andy Shevchenko Feb. 19, 2024, 11:49 a.m. UTC | #1
On Sat, Feb 17, 2024 at 04:42:34PM +0000, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> Sorry for the rapid resend, Andy noticed I'd messed up creating the v3 patch
> set with some updates committed in the wrong patch.
> 
> Since v3: The updates to alignment of device_for_each_child_node_scopd() were
>     in the wrong patch. Move them to patch 4 where they should always
>     have been. (thanks Andy!)
> 
> Since v2: Thanks to Sakari and Andy for reviews.
> - New first patch moving fwnode_handle_put() into property.h
> - Tweak alignment in the loop macro
> - Pick up tags.
> - scopd -> scoped typo fix in some patch descriptions.
> 
> As can be seen by the examples from IIO that follow this can save
> a reasonable amount of complexity and boiler plate code, often enabling
> additional cleanups in related code such as use of
> return dev_err_probe().
> 
> Given we are now fairly late in the cycle, I'd expect to take this
> through the IIO tree and we can make use of it elsewhere next cycle.
> 
> Note I don't have the hardware so this is compile tested only.
> Hence I'd appreciate some Tested-by tags if anyone can poke one of the
> effected drivers.
> 
> Julia Lawal has posted some nice coccinelle magic for the DT equivalents.
> Referenced from that cover letter.  Similar may help us convert more
> drivers to use this new approach, but often hand tweaking can take
> additional advantage of other cleanup.h based magic, or things like
> return dev_err_probe().
> https://lore.kernel.org/all/20240211174237.182947-1-jic23@kernel.org/

It seems you are got all necessary tags to go.
I commented with some side notes that may be addressed later on.
Up to you.
Jonathan Cameron Feb. 19, 2024, 3:49 p.m. UTC | #2
On Mon, 19 Feb 2024 13:49:22 +0200
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:

> On Sat, Feb 17, 2024 at 04:42:34PM +0000, Jonathan Cameron wrote:
> > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > 
> > Sorry for the rapid resend, Andy noticed I'd messed up creating the v3 patch
> > set with some updates committed in the wrong patch.
> > 
> > Since v3: The updates to alignment of device_for_each_child_node_scopd() were
> >     in the wrong patch. Move them to patch 4 where they should always
> >     have been. (thanks Andy!)
> > 
> > Since v2: Thanks to Sakari and Andy for reviews.
> > - New first patch moving fwnode_handle_put() into property.h
> > - Tweak alignment in the loop macro
> > - Pick up tags.
> > - scopd -> scoped typo fix in some patch descriptions.
> > 
> > As can be seen by the examples from IIO that follow this can save
> > a reasonable amount of complexity and boiler plate code, often enabling
> > additional cleanups in related code such as use of
> > return dev_err_probe().
> > 
> > Given we are now fairly late in the cycle, I'd expect to take this
> > through the IIO tree and we can make use of it elsewhere next cycle.
> > 
> > Note I don't have the hardware so this is compile tested only.
> > Hence I'd appreciate some Tested-by tags if anyone can poke one of the
> > effected drivers.
> > 
> > Julia Lawal has posted some nice coccinelle magic for the DT equivalents.
> > Referenced from that cover letter.  Similar may help us convert more
> > drivers to use this new approach, but often hand tweaking can take
> > additional advantage of other cleanup.h based magic, or things like
> > return dev_err_probe().
> > https://lore.kernel.org/all/20240211174237.182947-1-jic23@kernel.org/  
> 
> It seems you are got all necessary tags to go.

Light on the driver changes to use it, but seems that we have
reached convergence on the infrastructure.

I'll let it sit until the end of the week though as I want to
get a pull request out anyway before taking this into my tree.


> I commented with some side notes that may be addressed later on.
> Up to you.
Thanks. I'll catch up with those shortly. 

Jonathan

>
Jonathan Cameron Feb. 24, 2024, 11:49 a.m. UTC | #3
On Mon, 19 Feb 2024 15:49:47 +0000
Jonathan Cameron <Jonathan.Cameron@Huawei.com> wrote:

> On Mon, 19 Feb 2024 13:49:22 +0200
> Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> 
> > On Sat, Feb 17, 2024 at 04:42:34PM +0000, Jonathan Cameron wrote:  
> > > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > > 
> > > Sorry for the rapid resend, Andy noticed I'd messed up creating the v3 patch
> > > set with some updates committed in the wrong patch.
> > > 
> > > Since v3: The updates to alignment of device_for_each_child_node_scopd() were
> > >     in the wrong patch. Move them to patch 4 where they should always
> > >     have been. (thanks Andy!)
> > > 
> > > Since v2: Thanks to Sakari and Andy for reviews.
> > > - New first patch moving fwnode_handle_put() into property.h
> > > - Tweak alignment in the loop macro
> > > - Pick up tags.
> > > - scopd -> scoped typo fix in some patch descriptions.
> > > 
> > > As can be seen by the examples from IIO that follow this can save
> > > a reasonable amount of complexity and boiler plate code, often enabling
> > > additional cleanups in related code such as use of
> > > return dev_err_probe().
> > > 
> > > Given we are now fairly late in the cycle, I'd expect to take this
> > > through the IIO tree and we can make use of it elsewhere next cycle.
> > > 
> > > Note I don't have the hardware so this is compile tested only.
> > > Hence I'd appreciate some Tested-by tags if anyone can poke one of the
> > > effected drivers.
> > > 
> > > Julia Lawal has posted some nice coccinelle magic for the DT equivalents.
> > > Referenced from that cover letter.  Similar may help us convert more
> > > drivers to use this new approach, but often hand tweaking can take
> > > additional advantage of other cleanup.h based magic, or things like
> > > return dev_err_probe().
> > > https://lore.kernel.org/all/20240211174237.182947-1-jic23@kernel.org/    
> > 
> > It seems you are got all necessary tags to go.  
> 
> Light on the driver changes to use it, but seems that we have
> reached convergence on the infrastructure.

What I'll do in the short term is pick up the changes that have been
reviewed and gained tags (so the infrastructure plus a few of the driver
changes) and then send a v5 with the remainder. I suspect the driver
changes have gotten lost in the deluge as IIO has been very busy this week.

Whilst I will occasionally pick up my own IIO changes with out review
tags I normally only do that for trivial stuff like build fixes.
These are simple but not simple enough!

So applied patches
1,2,4,5,12 and 15 to the togreg branch of iio.git which will be initially
pushed out as testing for 0-day to look at it.

Thanks,

Jonathan

> 
> I'll let it sit until the end of the week though as I want to
> get a pull request out anyway before taking this into my tree.
> 
> 
> > I commented with some side notes that may be addressed later on.
> > Up to you.  
> Thanks. I'll catch up with those shortly. 
> 
> Jonathan
> 
> >   
>
Jonathan Cameron Feb. 28, 2024, 2:15 p.m. UTC | #4
On Sat, 24 Feb 2024 11:49:12 +0000
Jonathan Cameron <jic23@kernel.org> wrote:

> On Mon, 19 Feb 2024 15:49:47 +0000
> Jonathan Cameron <Jonathan.Cameron@Huawei.com> wrote:
> 
> > On Mon, 19 Feb 2024 13:49:22 +0200
> > Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> >   
> > > On Sat, Feb 17, 2024 at 04:42:34PM +0000, Jonathan Cameron wrote:    
> > > > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > > > 
> > > > Sorry for the rapid resend, Andy noticed I'd messed up creating the v3 patch
> > > > set with some updates committed in the wrong patch.
> > > > 
> > > > Since v3: The updates to alignment of device_for_each_child_node_scopd() were
> > > >     in the wrong patch. Move them to patch 4 where they should always
> > > >     have been. (thanks Andy!)
> > > > 
> > > > Since v2: Thanks to Sakari and Andy for reviews.
> > > > - New first patch moving fwnode_handle_put() into property.h
> > > > - Tweak alignment in the loop macro
> > > > - Pick up tags.
> > > > - scopd -> scoped typo fix in some patch descriptions.
> > > > 
> > > > As can be seen by the examples from IIO that follow this can save
> > > > a reasonable amount of complexity and boiler plate code, often enabling
> > > > additional cleanups in related code such as use of
> > > > return dev_err_probe().
> > > > 
> > > > Given we are now fairly late in the cycle, I'd expect to take this
> > > > through the IIO tree and we can make use of it elsewhere next cycle.
> > > > 
> > > > Note I don't have the hardware so this is compile tested only.
> > > > Hence I'd appreciate some Tested-by tags if anyone can poke one of the
> > > > effected drivers.
> > > > 
> > > > Julia Lawal has posted some nice coccinelle magic for the DT equivalents.
> > > > Referenced from that cover letter.  Similar may help us convert more
> > > > drivers to use this new approach, but often hand tweaking can take
> > > > additional advantage of other cleanup.h based magic, or things like
> > > > return dev_err_probe().
> > > > https://lore.kernel.org/all/20240211174237.182947-1-jic23@kernel.org/      
> > > 
> > > It seems you are got all necessary tags to go.    
> > 
> > Light on the driver changes to use it, but seems that we have
> > reached convergence on the infrastructure.  
> 
> What I'll do in the short term is pick up the changes that have been
> reviewed and gained tags (so the infrastructure plus a few of the driver
> changes) and then send a v5 with the remainder. I suspect the driver
> changes have gotten lost in the deluge as IIO has been very busy this week.
> 
> Whilst I will occasionally pick up my own IIO changes with out review
> tags I normally only do that for trivial stuff like build fixes.
> These are simple but not simple enough!
> 
> So applied patches
> 1,2,4,5,12 and 15 to the togreg branch of iio.git which will be initially
> pushed out as testing for 0-day to look at it.

Linus is pushing back on some of the uses for cleanup.h for not being
sufficiently standard c like.

https://lore.kernel.org/linux-cxl/170905252721.2268463.6714121678946763402.stgit@dwillia2-xfh.jf.intel.com/T/#m336ba4087e4f963abbc654ba56eba6d61b77a14b

That's fair enough, but I think makes pull requests with them in higher
risk than normal.

As such, for the things I have queued in the IIO tree (beyond the pull
request GregKH already took which we can cross fingers on),
I'm going to shuffle the tree so that the remainder can be handled
in two separate pull requests:

1) Everything else
2) cleanup.h related including this series.

That should give Greg maximum flexibility to do what makes sense for
char-misc-next.

The scoped_cond_guard() stuff can be easily modified to be near what Linus is
proposing so hopefully we can do that next cycle.

Hopefully I can get this done later today.

Jonathan




> 
> Thanks,
> 
> Jonathan
> 
> > 
> > I'll let it sit until the end of the week though as I want to
> > get a pull request out anyway before taking this into my tree.
> > 
> >   
> > > I commented with some side notes that may be addressed later on.
> > > Up to you.    
> > Thanks. I'll catch up with those shortly. 
> > 
> > Jonathan
> >   
> > >     
> >   
> 
>