X-Git-Url: http://git.osdn.net/view?p=uclinux-h8%2Flinux.git;a=blobdiff_plain;f=drivers%2Fclk%2Fat91%2Fclk-system.c;fp=drivers%2Fclk%2Fat91%2Fclk-system.c;h=58008b3e8bc175f8befb8126e99e5f55c57d2176;hp=a76d03fd577be05fe86a95d51092380ab01e4eb1;hb=4322f028477d4c84f12fa9aa21809300855ff953;hpb=9cb1680c20037e54f202956adabc446c499b9b1e diff --git a/drivers/clk/at91/clk-system.c b/drivers/clk/at91/clk-system.c index a76d03fd577b..58008b3e8bc1 100644 --- a/drivers/clk/at91/clk-system.c +++ b/drivers/clk/at91/clk-system.c @@ -130,13 +130,17 @@ at91_clk_register_system(struct at91_pmc *pmc, const char *name, irq_set_status_flags(sys->irq, IRQ_NOAUTOEN); ret = request_irq(sys->irq, clk_system_irq_handler, IRQF_TRIGGER_HIGH, name, sys); - if (ret) + if (ret) { + kfree(sys); return ERR_PTR(ret); + } } clk = clk_register(NULL, &sys->hw); - if (IS_ERR(clk)) + if (IS_ERR(clk)) { + free_irq(sys->irq, sys); kfree(sys); + } return clk; }