On Fri, Jun 10, 2022 at 10:48 AM Nuno Sá <nuno.sa@xxxxxxxxxx> wrote: > > of_iio_channel_get_by_name() can either return NULL or an error pointer > so that only doing IS_ERR() is not enough. Fix it by checking the NULL > pointer case and return -ENODEV in that case. Note this is done like this > so that users of the function (which only check for error pointers) do > not need to be changed. This is not ideal since we are losing error codes > and as such, in a follow up change, things will be unified so that > of_iio_channel_get_by_name() only returns error codes. Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > Fixes: 6e39b145cef7 ("iio: provide of_iio_channel_get_by_name() and devm_ version it") > Signed-off-by: Nuno Sá <nuno.sa@xxxxxxxxxx> > --- > drivers/iio/inkern.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c > index 9d87057794fc..87fd2a0d44f2 100644 > --- a/drivers/iio/inkern.c > +++ b/drivers/iio/inkern.c > @@ -412,6 +412,8 @@ struct iio_channel *devm_of_iio_channel_get_by_name(struct device *dev, > channel = of_iio_channel_get_by_name(np, channel_name); > if (IS_ERR(channel)) > return channel; > + if (!channel) > + return ERR_PTR(-ENODEV); > > ret = devm_add_action_or_reset(dev, devm_iio_channel_free, channel); > if (ret) > -- > 2.36.1 > -- With Best Regards, Andy Shevchenko