On Fri, Aug 05, 2022 at 02:59:29PM +0200, Ahmad Fatoum wrote: > When of_reset_control_get() is called without connection ID it returns > -ENOENT when the 'resets' property doesn't exists or is an empty entry. > However when a connection ID is given it returns -EINVAL when the 'resets' > property doesn't exists or the requested name can't be found. This is > because the error code returned by of_property_match_string() is just > passed down as an index to of_parse_phandle_with_args(), which then > returns -EINVAL. > > To get a consistent return value with both code paths we must return > -ENOENT when of_property_match_string() fails. > Signed-off-by: Alban Bedel <albeu@xxxxxxx> > Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> > [afa: ported from Linux 3d81216fde465e76c5eae98f61d3666163634395] > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > drivers/reset/core.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) Applied, thanks Sascha > > diff --git a/drivers/reset/core.c b/drivers/reset/core.c > index 4355c3415eb0..93fbaeccafd2 100644 > --- a/drivers/reset/core.c > +++ b/drivers/reset/core.c > @@ -236,8 +236,11 @@ struct reset_control *of_reset_control_get(struct device_node *node, > { > int index = 0; > > - if (id) > + if (id) { > index = of_property_match_string(node, "reset-names", id); > + if (index < 0) > + return ERR_PTR(-ENOENT); > + } > > return of_reset_control_get_by_index(node, index); > } > -- > 2.30.2 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |