On Mon, Jul 22, 2013 at 02:14:28PM +0200, Gerhard Sittig wrote: > + ret = clk_prepare_enable(clk); > + if (ret) { > + devm_clk_put(dev, clk); > + goto free_irq; The main point of the devm_ APIs is to avoid the need for explicit freeing so you should just remove these puts.