Input: pmic8xxx-keypad - fix a leak of the IRQ during init failure
authorAxel Lin <axel.lin@gmail.com>
Tue, 19 Jul 2011 00:09:22 +0000 (17:09 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 19 Jul 2011 00:10:31 +0000 (17:10 -0700)
Make sure we are passing the same cookie in all calls to
request_any_context_irq() and free_irq().

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/keyboard/pmic8xxx-keypad.c

index 40b02ae96f864b0ff2014300cf8b3b2d94afe1d0..f2e8b9a347df94ce41f35d47731c04d868db5bfe 100644 (file)
@@ -699,9 +699,9 @@ static int __devinit pmic8xxx_kp_probe(struct platform_device *pdev)
        return 0;
 
 err_pmic_reg_read:
-       free_irq(kp->key_stuck_irq, NULL);
+       free_irq(kp->key_stuck_irq, kp);
 err_req_stuck_irq:
-       free_irq(kp->key_sense_irq, NULL);
+       free_irq(kp->key_sense_irq, kp);
 err_gpio_config:
 err_get_irq:
        input_free_device(kp->input);
@@ -716,8 +716,8 @@ static int __devexit pmic8xxx_kp_remove(struct platform_device *pdev)
        struct pmic8xxx_kp *kp = platform_get_drvdata(pdev);
 
        device_init_wakeup(&pdev->dev, 0);
-       free_irq(kp->key_stuck_irq, NULL);
-       free_irq(kp->key_sense_irq, NULL);
+       free_irq(kp->key_stuck_irq, kp);
+       free_irq(kp->key_sense_irq, kp);
        input_unregister_device(kp->input);
        kfree(kp);