[PATCH 21/34] iio: inkern: fix return value in devm_of_iio_channel_get_by_name()

Andy Shevchenko andy.shevchenko at gmail.com
Fri Jun 10 07:56:57 PDT 2022


On Fri, Jun 10, 2022 at 10:48 AM Nuno Sá <nuno.sa at analog.com> 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 at gmail.com>

> Fixes: 6e39b145cef7 ("iio: provide of_iio_channel_get_by_name() and devm_ version it")
> Signed-off-by: Nuno Sá <nuno.sa at analog.com>
> ---
>  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



More information about the Linux-mediatek mailing list