[PATCH] clk: fix error path inside clk_get()

Rob Herring robherring2 at gmail.com
Mon Jul 16 05:03:12 EST 2012


On 07/15/2012 01:01 PM, John Crispin wrote:
> clk_get() calls of_clk_get_by_name() which can return a ERR_PTR. The error path
> currently only checks for !NULL. We need to use !IS_ERR_OR_NULL instead.
> 
> This bug was introduced by 766e6a4ec602d0c107553b91b3434fe9c03474f4
> 
> Signed-off-by: John Crispin <blogic at openwrt.org>
> Cc: Rob Herring <rob.herring at calxeda.com>
> Cc: Grant Likely <grant.likely at secretlab.ca>
> Cc: devicetree-discuss at lists.ozlabs.org
> ---
> I am seeing this bug on linux-next from 13.07.2012

Already got a fix for this from Shawn Guo earlier today.

> 
>  drivers/clk/clkdev.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c
> index 20649b3..7100d5c 100644
> --- a/drivers/clk/clkdev.c
> +++ b/drivers/clk/clkdev.c
> @@ -157,7 +157,7 @@ struct clk *clk_get(struct device *dev, const char *con_id)
>  
>  	if (dev) {
>  		clk = of_clk_get_by_name(dev->of_node, con_id);
> -		if (clk && __clk_get(clk))
> +		if (!IS_ERR_OR_NULL(clk) && __clk_get(clk))

IS_ERR() is correct here.

Rob

>  			return clk;
>  	}
>  
> 



More information about the devicetree-discuss mailing list