On Mon, Sep 05, 2022 at 01:59:44PM +0200, Ahmad Fatoum wrote: > The of_devices_ensure_probed_by functions are expected to return an > error code after iterating over all matching devices should any device > have failed its of_device_ensure_probed. Doing this unearths one common > failure: a matching node has status = "disabled". These will have > of_device_ensure_probed return -ENODEV, which makes sense for users > wanting to ensure a specific device is probed, but doesn't when > iterating over multiple nodes. > > We already have of_devices_ensure_probed_by_dev_id, which does an early > of_device_is_available check, so do likewise for the other to > ensure_probed_by_* functions. > > Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> > --- > drivers/of/platform.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) Applied, thanks Sascha > > diff --git a/drivers/of/platform.c b/drivers/of/platform.c > index dc784ea8e550..a9a5d4c2daf2 100644 > --- a/drivers/of/platform.c > +++ b/drivers/of/platform.c > @@ -525,12 +525,15 @@ int of_devices_ensure_probed_by_property(const char *property_name) > return 0; > > for_each_node_with_property(node, property_name) { > - ret = of_device_ensure_probed(node); > + if (!of_device_is_available(node)) > + continue; > + > + err = of_device_ensure_probed(node); > if (err) > ret = err; > } > > - return 0; > + return ret; > } > EXPORT_SYMBOL_GPL(of_devices_ensure_probed_by_property); > > @@ -543,12 +546,15 @@ int of_devices_ensure_probed_by_name(const char *name) > return 0; > > for_each_node_by_name(node, name) { > - ret = of_device_ensure_probed(node); > + if (!of_device_is_available(node)) > + continue; > + > + err = of_device_ensure_probed(node); > if (err) > ret = err; > } > > - return 0; > + return ret; > } > EXPORT_SYMBOL_GPL(of_devices_ensure_probed_by_name); > > -- > 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 |