Hi Andy, On Fri, Apr 08, 2022 at 09:48:43PM +0300, Andy Shevchenko wrote: > As to_of_node() suggests and the way the code in the OF and software node > back ends actually uses the fwnode handle, it may be constified. Do this > for good. How? If the fwnode is const, then the struct it contains must be presumed to be const, too. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > --- > v6: new patch > drivers/base/property.c | 2 +- > drivers/base/swnode.c | 2 +- > drivers/of/property.c | 2 +- > include/linux/fwnode.h | 2 +- > include/linux/property.h | 2 +- > 5 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/base/property.c b/drivers/base/property.c > index 36401cfe432c..1ad4b37cd312 100644 > --- a/drivers/base/property.c > +++ b/drivers/base/property.c > @@ -776,7 +776,7 @@ EXPORT_SYMBOL_GPL(device_get_named_child_node); > * > * Returns the fwnode handle. > */ > -struct fwnode_handle *fwnode_handle_get(struct fwnode_handle *fwnode) > +struct fwnode_handle *fwnode_handle_get(const struct fwnode_handle *fwnode) > { > if (!fwnode_has_op(fwnode, get)) > return fwnode; > diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c > index b0bbd1805970..84a11008ffb8 100644 > --- a/drivers/base/swnode.c > +++ b/drivers/base/swnode.c > @@ -363,7 +363,7 @@ EXPORT_SYMBOL_GPL(property_entries_free); > /* -------------------------------------------------------------------------- */ > /* fwnode operations */ > > -static struct fwnode_handle *software_node_get(struct fwnode_handle *fwnode) > +static struct fwnode_handle *software_node_get(const struct fwnode_handle *fwnode) > { > struct swnode *swnode = to_swnode(fwnode); > > diff --git a/drivers/of/property.c b/drivers/of/property.c > index 9a50ad25906e..8d06282af8e4 100644 > --- a/drivers/of/property.c > +++ b/drivers/of/property.c > @@ -858,7 +858,7 @@ struct device_node *of_graph_get_remote_node(const struct device_node *node, > } > EXPORT_SYMBOL(of_graph_get_remote_node); > > -static struct fwnode_handle *of_fwnode_get(struct fwnode_handle *fwnode) > +static struct fwnode_handle *of_fwnode_get(const struct fwnode_handle *fwnode) > { > return of_fwnode_handle(of_node_get(to_of_node(fwnode))); > } > diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h > index 9a81c4410b9f..a94bd47192a3 100644 > --- a/include/linux/fwnode.h > +++ b/include/linux/fwnode.h > @@ -108,7 +108,7 @@ struct fwnode_reference_args { > * zero on success, a negative error code otherwise. > */ > struct fwnode_operations { > - struct fwnode_handle *(*get)(struct fwnode_handle *fwnode); > + struct fwnode_handle *(*get)(const struct fwnode_handle *fwnode); > void (*put)(struct fwnode_handle *fwnode); > bool (*device_is_available)(const struct fwnode_handle *fwnode); > const void *(*device_get_match_data)(const struct fwnode_handle *fwnode, > diff --git a/include/linux/property.h b/include/linux/property.h > index fc24d45632eb..c631ee7fd161 100644 > --- a/include/linux/property.h > +++ b/include/linux/property.h > @@ -121,7 +121,7 @@ struct fwnode_handle *fwnode_get_named_child_node( > struct fwnode_handle *device_get_named_child_node(struct device *dev, > const char *childname); > > -struct fwnode_handle *fwnode_handle_get(struct fwnode_handle *fwnode); > +struct fwnode_handle *fwnode_handle_get(const struct fwnode_handle *fwnode); > void fwnode_handle_put(struct fwnode_handle *fwnode); > > int fwnode_irq_get(const struct fwnode_handle *fwnode, unsigned int index); > -- > 2.35.1 > -- Sakari Ailus