diff options
author | Axel Lin <axel.lin@gmail.com> | 2012-03-26 09:57:08 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-04-18 14:52:40 -0700 |
commit | 3241d56edda5cae37cc91b8031d6b52ed69d7eab (patch) | |
tree | 1c19fe6a09cc641035d69d5b6104f78079faa3c1 /drivers/misc | |
parent | e816b57a337ea3b755de72bec38c10c864f23015 (diff) |
misc: Fix irq leak in max8997_muic_probe error path
Current code does not properly free allocated irqs if request_threaded_irq
returns error, fix it.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc')
-rw-r--r-- | drivers/misc/max8997-muic.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/misc/max8997-muic.c b/drivers/misc/max8997-muic.c index 19591eaa492a..2e7df9c56491 100644 --- a/drivers/misc/max8997-muic.c +++ b/drivers/misc/max8997-muic.c @@ -440,10 +440,6 @@ static int __devinit max8997_muic_probe(struct platform_device *pdev) "failed: irq request (IRQ: %d," " error :%d)\n", muic_irq->irq, ret); - - for (i = i - 1; i >= 0; i--) - free_irq(muic_irq->irq, info); - goto err_irq; } } @@ -457,6 +453,8 @@ static int __devinit max8997_muic_probe(struct platform_device *pdev) return ret; err_irq: + while (--i >= 0) + free_irq(pdata->irq_base + muic_irqs[i].irq, info); err_pdata: kfree(info); err_kfree: |