From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: "Jonathan Cameron" <jic23@kernel.org>,
linux-iio@vger.kernel.org,
"Rafael J . Wysocki" <rafael@kernel.org>,
"Len Brown" <lenb@kernel.org>,
linux-acpi@vger.kernel.org,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Daniel Scally" <djrscally@gmail.com>,
"Heikki Krogerus" <heikki.krogerus@linux.intel.com>,
"Julia Lawall" <Julia.Lawall@inria.fr>,
"Nuno Sá" <nuno.sa@analog.com>,
"Cosmin Tanislav" <cosmin.tanislav@analog.com>,
"Mihail Chindris" <mihail.chindris@analog.com>,
"Rasmus Villemoes" <linux@rasmusvillemoes.dk>,
"Tomislav Denis" <tomislav.denis@avl.com>,
"Marek Vasut" <marex@denx.de>,
"Olivier Moysan" <olivier.moysan@foss.st.com>,
"Fabrice Gasnier" <fabrice.gasnier@foss.st.com>,
"Lad Prabhakar" <prabhakar.mahadev-lad.rj@bp.renesas.com>,
"Dmitry Baryshkov" <dmitry.baryshkov@linaro.org>,
"Marijn Suijten" <marijn.suijten@somainline.org>,
"Marius Cristea" <marius.cristea@microchip.com>,
"Ibrahim Tilki" <Ibrahim.Tilki@analog.com>,
"Peter Zijlstra" <peterz@infradead.org>
Subject: Re: [PATCH v2 01/14] device property: Add cleanup.h based fwnode_handle_put() scope based cleanup.
Date: Mon, 12 Feb 2024 11:42:06 +0000 [thread overview]
Message-ID: <20240212114206.00005b9f@Huawei.com> (raw)
In-Reply-To: <Zcnbk6_9BU_trU9P@kekkonen.localdomain>
On Mon, 12 Feb 2024 08:49:23 +0000
Sakari Ailus <sakari.ailus@linux.intel.com> wrote:
> Hi Jonathan,
>
> On Sun, Feb 11, 2024 at 07:25:27PM +0000, Jonathan Cameron wrote:
> > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> >
> > Useful where the fwnode_handle was obtained from a call such as
> > fwnode_find_reference() as it will safely do nothing if IS_ERR() is true
> > and will automatically release the reference on the variable leaving
> > scope.
> >
> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > ---
> > include/linux/property.h | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/include/linux/property.h b/include/linux/property.h
> > index e6516d0b7d52..bcda028f1a33 100644
> > --- a/include/linux/property.h
> > +++ b/include/linux/property.h
> > @@ -12,6 +12,7 @@
> >
> > #include <linux/args.h>
> > #include <linux/bits.h>
> > +#include <linux/cleanup.h>
> > #include <linux/fwnode.h>
> > #include <linux/stddef.h>
> > #include <linux/types.h>
> > @@ -188,6 +189,8 @@ struct fwnode_handle *device_get_named_child_node(const struct device *dev,
> >
> > struct fwnode_handle *fwnode_handle_get(struct fwnode_handle *fwnode);
> > void fwnode_handle_put(struct fwnode_handle *fwnode);
> > +DEFINE_FREE(fwnode_handle, struct fwnode_handle *,
> > + if (!IS_ERR_OR_NULL(_T)) fwnode_handle_put(_T))
>
> fwnode_handle_put() can be safely called on NULL or error pointer fwnode so
> you can remove the check.
Was discussed in the RFC thread (where i didn't have this protection)
https://lore.kernel.org/linux-iio/20240108125117.000010fb@Huawei.com/
includes a reference to Linus Torvald's view on this.
All comes down to compiler visibility and optimization opportunities, which are improved
if the check is in the macro definition.
Jonathan
>
> >
> > int fwnode_irq_get(const struct fwnode_handle *fwnode, unsigned int index);
> > int fwnode_irq_get_byname(const struct fwnode_handle *fwnode, const char *name);
>
next prev parent reply other threads:[~2024-02-12 11:42 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-11 19:25 [PATCH v2 00/14] device property / IIO: Use cleanup.h magic for fwnode_handle_put() handling Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 01/14] device property: Add cleanup.h based fwnode_handle_put() scope based cleanup Jonathan Cameron
2024-02-12 8:49 ` Sakari Ailus
2024-02-12 11:42 ` Jonathan Cameron [this message]
2024-02-12 12:36 ` Sakari Ailus
2024-02-12 12:46 ` Andy Shevchenko
2024-02-12 12:58 ` Sakari Ailus
2024-02-13 10:22 ` Jonathan Cameron
2024-02-14 14:09 ` Jonathan Cameron
2024-02-14 17:10 ` Sakari Ailus
2024-02-12 12:05 ` Andy Shevchenko
2024-02-12 12:06 ` Andy Shevchenko
2024-02-11 19:25 ` [PATCH v2 02/14] iio: temp: ltc2983: Use __free(fwnode_handle) to replace fwnode_handle_put() calls Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 03/14] device property: Introduce device_for_each_child_node_scoped() Jonathan Cameron
2024-02-12 12:10 ` Andy Shevchenko
2024-02-13 10:25 ` Jonathan Cameron
2024-02-13 17:12 ` Andy Shevchenko
2024-02-16 17:38 ` Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 04/14] iio: adc: max11410: Use device_for_each_child_node_scoped() Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 05/14] iio: adc: mcp3564: Use device_for_each_child_node_scopd() Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 06/14] iio: adc: qcom-spmi-adc5: " Jonathan Cameron
2024-02-12 7:51 ` Dmitry Baryshkov
2024-02-11 19:25 ` [PATCH v2 07/14] iio: adc: rzg2l_adc: " Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 08/14] iio: adc: stm32: Use device_for_each_child_node_scoped() Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 09/14] iio: adc: ti-ads1015: " Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 10/14] iio: adc: ti-ads131e08: " Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 11/14] iio: addac: ad74413r: " Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 12/14] iio: dac: ad3552r: " Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 13/14] iio: dac: ad5770r: " Jonathan Cameron
2024-02-11 19:25 ` [PATCH v2 14/14] iio: dac: ltc2688: " Jonathan Cameron
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=20240212114206.00005b9f@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=Ibrahim.Tilki@analog.com \
--cc=Julia.Lawall@inria.fr \
--cc=andriy.shevchenko@linux.intel.com \
--cc=cosmin.tanislav@analog.com \
--cc=djrscally@gmail.com \
--cc=dmitry.baryshkov@linaro.org \
--cc=fabrice.gasnier@foss.st.com \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=jic23@kernel.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=marex@denx.de \
--cc=marijn.suijten@somainline.org \
--cc=marius.cristea@microchip.com \
--cc=mihail.chindris@analog.com \
--cc=nuno.sa@analog.com \
--cc=olivier.moysan@foss.st.com \
--cc=peterz@infradead.org \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
--cc=rafael@kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=tomislav.denis@avl.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.