Re: [PATCH v5 3/3] blackfin: bf609: let clk_disable() return immediately if clk is NULL
From: Masahiro Yamada
Date: Wed Apr 12 2017 - 23:34:13 EST
Hi Andrew
2017-03-28 18:17 GMT+09:00 Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>:
> In many of clk_disable() implementations, it is a no-op for a NULL
> pointer input, but this is one of the exceptions.
>
> Making it treewide consistent will allow clock consumers to call
> clk_disable() without NULL pointer check.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
This is the last clk_disable() that could cause NULL pointer access.
This is blocking clk consumer cleanup works.
I poked the Blackfin maintainer several times, but no response.
Actually, the maintainer has not been picking up any patches for a long time.
Please pick up this patch through your tree.
> ---
>
> Changes in v5: None
> Changes in v4:
> - Split into per-arch patches
>
> Changes in v3:
> - Return only when clk is NULL. Do not take care of error pointer.
>
> Changes in v2:
> - Rebase on Linux 4.6-rc1
>
> arch/blackfin/mach-bf609/clock.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/blackfin/mach-bf609/clock.c b/arch/blackfin/mach-bf609/clock.c
> index 3783058..392a59b 100644
> --- a/arch/blackfin/mach-bf609/clock.c
> +++ b/arch/blackfin/mach-bf609/clock.c
> @@ -97,6 +97,9 @@ EXPORT_SYMBOL(clk_enable);
>
> void clk_disable(struct clk *clk)
> {
> + if (!clk)
> + return;
> +
> if (clk->ops && clk->ops->disable)
> clk->ops->disable(clk);
> }
> --
> 2.7.4
>
--
Best Regards
Masahiro Yamada