Messages in this thread Patch in this message | | | From | David Dueck <> | Subject | [PATCH 4/6] clk: at91: clk-pll: fix error path | Date | Fri, 26 Jun 2015 14:33:30 +0200 |
| |
Do not leak memory if request_irq fails and free the irq if clk_register fails.
Signed-off-by: David Dueck <davidcdueck@googlemail.com> --- drivers/clk/at91/clk-pll.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/at91/clk-pll.c b/drivers/clk/at91/clk-pll.c index cbbe403..18b60f4 100644 --- a/drivers/clk/at91/clk-pll.c +++ b/drivers/clk/at91/clk-pll.c @@ -346,12 +346,16 @@ at91_clk_register_pll(struct at91_pmc *pmc, unsigned int irq, const char *name, irq_set_status_flags(pll->irq, IRQ_NOAUTOEN); ret = request_irq(pll->irq, clk_pll_irq_handler, IRQF_TRIGGER_HIGH, id ? "clk-pllb" : "clk-plla", pll); - if (ret) + if (ret) { + kfree(pll); return ERR_PTR(ret); + } clk = clk_register(NULL, &pll->hw); - if (IS_ERR(clk)) + if (IS_ERR(clk)) { + free_irq(pll->irq, pll); kfree(pll); + } return clk; } -- 2.4.4
| |