[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