Messages in this thread | | | From | Saravana Kannan <> | Date | Mon, 4 Nov 2019 11:01:44 -0800 | Subject | Re: [PATCH v1 5/5] of: property: Skip adding device links to suppliers that aren't devices |
| |
On Mon, Nov 4, 2019 at 7:18 AM Rob Herring <robh+dt@kernel.org> wrote: > > On Mon, Oct 28, 2019 at 5:00 PM Saravana Kannan <saravanak@google.com> 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@google.com> > > --- > > 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
| |