mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 06:41:43 +00:00
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>
This commit is contained in:
parent
2c204109ec
commit
edf21d9c38
@ -699,9 +699,9 @@ static int __devinit pmic8xxx_kp_probe(struct platform_device *pdev)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_pmic_reg_read:
|
err_pmic_reg_read:
|
||||||
free_irq(kp->key_stuck_irq, NULL);
|
free_irq(kp->key_stuck_irq, kp);
|
||||||
err_req_stuck_irq:
|
err_req_stuck_irq:
|
||||||
free_irq(kp->key_sense_irq, NULL);
|
free_irq(kp->key_sense_irq, kp);
|
||||||
err_gpio_config:
|
err_gpio_config:
|
||||||
err_get_irq:
|
err_get_irq:
|
||||||
input_free_device(kp->input);
|
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);
|
struct pmic8xxx_kp *kp = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
device_init_wakeup(&pdev->dev, 0);
|
device_init_wakeup(&pdev->dev, 0);
|
||||||
free_irq(kp->key_stuck_irq, NULL);
|
free_irq(kp->key_stuck_irq, kp);
|
||||||
free_irq(kp->key_sense_irq, NULL);
|
free_irq(kp->key_sense_irq, kp);
|
||||||
input_unregister_device(kp->input);
|
input_unregister_device(kp->input);
|
||||||
kfree(kp);
|
kfree(kp);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user