Re: [PATCH] reset: allow to pass NULL pointer to reset_control_put()
From: Arnd Bergmann
Date: Wed May 04 2016 - 07:24:22 EST
On Wednesday 04 May 2016 20:17:51 Masahiro Yamada wrote:
> Currently, reset_control_put() just returns for error pointer,
> but not for NULL pointer. This is not reasonable.
>
> Passing NULL pointer should be allowed as well to make failure path
> handling easier.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> ---
>
> drivers/reset/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/reset/core.c b/drivers/reset/core.c
> index 181b05d..7bb16d1 100644
> --- a/drivers/reset/core.c
> +++ b/drivers/reset/core.c
> @@ -288,7 +288,7 @@ EXPORT_SYMBOL_GPL(reset_control_get);
>
> void reset_control_put(struct reset_control *rstc)
> {
> - if (IS_ERR(rstc))
> + if (IS_ERR_OR_NULL(rstc))
> return;
>
> module_put(rstc->rcdev->owner);
Using IS_ERR_OR_NULL() normally indicates that there is something
wrong with the API, or with the caller.
What exactly is the idea behind treating an error pointer as a valid
input to reset_control_put() here? Maybe it should just test for
NULL?
Arnd