aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/keyboard/pmic8xxx-keypad.c
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@gmail.com>2011-07-18 20:09:22 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2011-07-18 20:10:31 -0400
commitedf21d9c38b945b91d100bae59d951bce131d58b (patch)
tree73dbcfdfd47ef9765e42c37c1fee51cd7b278eb0 /drivers/input/keyboard/pmic8xxx-keypad.c
parent2c204109ec1018f72114c7f19132a1109a3f0653 (diff)
Input: pmic8xxx-keypad - fix a leak of the IRQ during init failure
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>
Diffstat (limited to 'drivers/input/keyboard/pmic8xxx-keypad.c')
-rw-r--r--drivers/input/keyboard/pmic8xxx-keypad.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/input/keyboard/pmic8xxx-keypad.c b/drivers/input/keyboard/pmic8xxx-keypad.c
index 40b02ae96f86..f2e8b9a347df 100644
--- a/drivers/input/keyboard/pmic8xxx-keypad.c
+++ b/drivers/input/keyboard/pmic8xxx-keypad.c
@@ -699,9 +699,9 @@ static int __devinit pmic8xxx_kp_probe(struct platform_device *pdev)
699 return 0; 699 return 0;
700 700
701err_pmic_reg_read: 701err_pmic_reg_read:
702 free_irq(kp->key_stuck_irq, NULL); 702 free_irq(kp->key_stuck_irq, kp);
703err_req_stuck_irq: 703err_req_stuck_irq:
704 free_irq(kp->key_sense_irq, NULL); 704 free_irq(kp->key_sense_irq, kp);
705err_gpio_config: 705err_gpio_config:
706err_get_irq: 706err_get_irq:
707 input_free_device(kp->input); 707 input_free_device(kp->input);
@@ -716,8 +716,8 @@ static int __devexit pmic8xxx_kp_remove(struct platform_device *pdev)
716 struct pmic8xxx_kp *kp = platform_get_drvdata(pdev); 716 struct pmic8xxx_kp *kp = platform_get_drvdata(pdev);
717 717
718 device_init_wakeup(&pdev->dev, 0); 718 device_init_wakeup(&pdev->dev, 0);
719 free_irq(kp->key_stuck_irq, NULL); 719 free_irq(kp->key_stuck_irq, kp);
720 free_irq(kp->key_sense_irq, NULL); 720 free_irq(kp->key_sense_irq, kp);
721 input_unregister_device(kp->input); 721 input_unregister_device(kp->input);
722 kfree(kp); 722 kfree(kp);
723 723