Messages in this thread Patch in this message | | | From | David Dueck <> | Subject | [PATCH 5/6] clk: at91: clk-system: fix error path | Date | Fri, 26 Jun 2015 14:33:31 +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-system.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/at91/clk-system.c b/drivers/clk/at91/clk-system.c index a76d03f..58008b3 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; } -- 2.4.4
| |