Re: [PATCH v3 3/9] device property: add index argument to property_read_string_array() callback

From: Rafael J. Wysocki
Date: Tue Apr 05 2022 - 22:09:19 EST


On Mon, Mar 28, 2022 at 4:29 PM Clément Léger <clement.leger@xxxxxxxxxxx> wrote:
>
> Le Fri, 25 Mar 2022 16:30:45 +0200,
> Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> a écrit :
>
> > > pointer = property_entry_find(props, propname, length);
> > > if (IS_ERR(pointer))
> > > return PTR_ERR(pointer);
> >
> > > + if (index >= array_len)
> > > + return -ENODATA;
> >
> > I was about to ask if we can check this before the
> > property_entry_find() call, but realized that in such case it will
> > shadow possible errors due to wrong or absent property.
>
> I think you are actually right, the check can be done after
> property_entry_count_elems_of_size() since it already checks for the
> property to be present. I'll move that check.
>
> >
> > ...
> >
> > > - of_property_read_string_array(node, propname, val,
> > > nval) :
> > > + of_property_read_string_array_index(node,
> > > propname, val, nval,
> > > + index) :
> >
> > Dunno about the style there, but I think it can be one line.
>
> Seems like the complete file is strictly applying the 80 columns rules
> so I thought it was better to keep it like this. However, I think the
> ternary oeprator is not really readable with such split.

So FWIW I would entirely change it to

if (!val)
return of_property_count_strings(node, propname);

return of_property_read_string_array_index(node, propname, val,

nval, index);

which IMO would be way easier to read.