Re: [PATCH] PM / OPP: of_property_count_u32_elems() can return errors

From: Viresh Kumar
Date: Tue Sep 22 2015 - 12:35:15 EST


On 19-09-15, 15:22, Stephen Boyd wrote:
> On 09/18, Viresh Kumar wrote:
> > On 17-09-15, 11:13, Stephen Boyd wrote:
> > > > + count = of_property_count_u32_elems(opp->np, "opp-microvolt");
> > > > + if (count < 0) {
> > >
> > > We can't test count for -EINVAL to detect the missing property
> > > because -EINVAL is also returned on a non-multiple of u32 length
> > > property? Maybe we shouldn't worry about that case and turn
> > > -EINVAL into 0.
> >
> > So you are saying that we go ahead without regulators if a incorrect
> > values are present in opp-microvolt? i.e. even if the length property
> > was invalid, we return 0 from this function.
> >
> > The problem here is that we will try changing the frequency without
> > changing the regulator in that case, and it might not be safe for the
> > platform, isn't it?
> >
>
> Do we care if a platform has changed the length of the property
> to something that isn't a multiple of u32? That sounds very rare,
> that's all. I agree it's a bug.

Hmm, okay.. I got it now.

Maybe we can update of_property_count_u32_elems() to return zero in
that case, but that might not be the appropriate return value.

It *can* be confused against the case where the user has written an
empty property. But even in that case we are returning -ENODATA
instead of 0 :)

--
viresh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/