Re: [PATCH 1/2] device property: Check fwnode->secondary in fwnode_graph_get_next_endpoint()

From: Andy Shevchenko
Date: Fri Jul 30 2021 - 07:34:43 EST


On Fri, Jul 23, 2021 at 02:04:59PM +0100, Daniel Scally wrote:
>
> On 23/07/2021 13:32, Andy Shevchenko wrote:
> > On Thu, Jul 22, 2021 at 09:19:28PM +0100, Daniel Scally wrote:
> >> Sensor drivers often check for an endpoint to make sure that they're
> >> connected to a consuming device like a CIO2 during .probe(). Some of
> >> those endpoints might be in the form of software_nodes assigned as
> >> a secondary to the device's fwnode_handle. Account for this possibility
> >> in fwnode_graph_get_next_endpoint() to avoid having to do it in the
> >> sensor drivers themselves.
> > ...
> >
> >> + ep = fwnode_call_ptr_op(parent, graph_get_next_endpoint, prev);
> >> +
> >> + if (IS_ERR_OR_NULL(ep) && !IS_ERR_OR_NULL(parent) &&
> >> + !IS_ERR_OR_NULL(parent->secondary))
> > Nit-pick, I would put it like:
> >
> > if (!IS_ERR_OR_NULL(parent->secondary) && !IS_ERR_OR_NULL(parent) &&
> > IS_ERR_OR_NULL(ep))
> >
> > or
> >
> > if (IS_ERR_OR_NULL(ep) &&
> > !IS_ERR_OR_NULL(parent->secondary) && !IS_ERR_OR_NULL(parent))
> >
> > for the sake of logical split.
>
>
> OK; I'll do the second one, feel like it's better to have ep as the
> first check.

Fine, but also I have just noticed that parent should be checked before
parent->secondary.

Something like this

if (IS_ERR_OR_NULL(ep) &&
!IS_ERR_OR_NULL(parent) && IS_ERR_OR_NULL(parent->secondary))

> >> + ep = fwnode_graph_get_next_endpoint(parent->secondary, NULL);

--
With Best Regards,
Andy Shevchenko