On Mon, Nov 4, 2019 at 7:18 AM Rob Herring <robh+dt@xxxxxxxxxx> wrote: > > On Mon, Oct 28, 2019 at 5:00 PM Saravana Kannan <saravanak@xxxxxxxxxx> wrote: > > > > Some devices need to be initialized really early and can't wait for > > driver core or drivers to be functional. These devices are typically > > initialized without creating a struct device for their device nodes. > > > > If a supplier ends up being one of these devices, skip trying to add > > device links to them. > > > > Signed-off-by: Saravana Kannan <saravanak@xxxxxxxxxx> > > --- > > drivers/of/property.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/of/property.c b/drivers/of/property.c > > index f16f85597ccc..21c9d251318a 100644 > > --- a/drivers/of/property.c > > +++ b/drivers/of/property.c > > @@ -1038,6 +1038,7 @@ static int of_link_to_phandle(struct device *dev, struct device_node *sup_np, > > struct device *sup_dev; > > int ret = 0; > > struct device_node *tmp_np = sup_np; > > + int is_populated; > > > > of_node_get(sup_np); > > /* > > @@ -1062,9 +1063,10 @@ static int of_link_to_phandle(struct device *dev, struct device_node *sup_np, > > return -EINVAL; > > } > > sup_dev = get_dev_from_fwnode(&sup_np->fwnode); > > + is_populated = of_node_check_flag(sup_np, OF_POPULATED); > > of_node_put(sup_np); > > if (!sup_dev) > > - return -EAGAIN; > > + return is_populated ? 0 : -EAGAIN; > > You're only using the flag in one spot and a comment would be good > here, so I'd just do: > > if (of_node_check_flag(sup_np, OF_POPULATED)) > return 0; /* Early device without a struct device */ Hi Rob, Thanks for the review. I'm using the flag to keep the error handling code simple/cleaner. I can't do the check like that after I do a put on the sup_np. Yeah, I was actually planning to add a dev_dbg() message when this happens and returning a -EINVAL (that'll be ignored by the caller) instead of -EAGAIN (that's NOT ignored by the caller). Looks like these changes go pulled into driver-core-next. So I'll send a delta patch to add the dbg message and also address you nit on the other patch. Thanks, Saravana