Re: [PATCH] regulator: core: Use IS_ERR_OR_NULL()

From: Arnd Bergmann
Date: Thu Aug 20 2015 - 09:26:55 EST


On Monday 17 August 2015 12:30:58 Viresh Kumar wrote:
> diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
> index 78387a6cbae5..55b49acfd9b3 100644
> --- a/drivers/regulator/core.c
> +++ b/drivers/regulator/core.c
> @@ -1595,7 +1595,7 @@ static void _regulator_put(struct regulator *regulator)
> {
> struct regulator_dev *rdev;
>
> - if (regulator == NULL || IS_ERR(regulator))
> + if (IS_ERR_OR_NULL(regulator))
> return;

The use of IS_ERR_OR_NULL is almost always a bug (as is the open-coded
equivalent).
Please try to find out why this is done here and add a comment
if it's actually correct, or fix it if not.

My guess is that it is not ok to pass an error pointer as the argument
of _regulator_put(), so maybe there should be WARN_ON()?

Arnd
--
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/