[PATCH/RFC 5/6] staging: board: Add support for devices with complex dependencies

Russell King - ARM Linux linux at arm.linux.org.uk
Fri Apr 3 10:04:08 PDT 2015


On Fri, Apr 03, 2015 at 03:57:27PM +0300, Dan Carpenter wrote:
> On Fri, Apr 03, 2015 at 02:42:02PM +0200, Geert Uytterhoeven wrote:
> > +int __init board_staging_register_clock(const struct board_staging_clk *bsc)
> > +{
> > +	struct clk *clk;
> > +	int error;
> > +
> > +	pr_debug("Registering clock %s for con_id %s dev_id %s\n", bsc->clk,
> > +		 bsc->con_id, bsc->dev_id);
> > +	clk = clk_get(NULL, bsc->clk);
> > +	if (IS_ERR(clk)) {
> > +		error = PTR_ERR(clk);
> > +		pr_err("Failed to get clock %s (%d)\n", bsc->clk, error);
> > +		return error;
> > +	}
> > +
> > +	error = clk_register_clkdev(clk, bsc->con_id, bsc->dev_id);
> > +	if (error)
> > +		pr_err("Failed to register clock %s (%d)\n", bsc->clk, error);
> > +		return error;
> 
> Missing curly braces.  Also it's weird that don't we need a clk_put()
> on the error patch as well as the success path?

What's also concerning is that this is an abuse of this.

clk_register_clkdev() is supposed to be used with clocks created with
the CCF functions, it's not for creating aliases.

We have clk_add_alias() which does *everything* that this function does,
only in a less buggy way.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.



More information about the linux-arm-kernel mailing list