2013-09-24 02:41:02

by Wei Yongjun

[permalink] [raw]
Subject: [PATCH] mmc: cb710: drop free_irq for devm_request_irq allocated irq

From: Wei Yongjun <[email protected]>

irq allocated with devm_request_irq should not be freed using
free_irq, because doing so causes a dangling pointer, and a
subsequent double free.

Signed-off-by: Wei Yongjun <[email protected]>
---
drivers/misc/cb710/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/misc/cb710/core.c b/drivers/misc/cb710/core.c
index 2e50f81..fb397e7 100644
--- a/drivers/misc/cb710/core.c
+++ b/drivers/misc/cb710/core.c
@@ -176,7 +176,7 @@ static int cb710_suspend(struct pci_dev *pdev, pm_message_t state)
{
struct cb710_chip *chip = pci_get_drvdata(pdev);

- free_irq(pdev->irq, chip);
+ devm_free_irq(&pdev->dev, pdev->irq, chip);
pci_save_state(pdev);
pci_disable_device(pdev);
if (state.event & PM_EVENT_SLEEP)


2013-09-30 13:59:34

by Michał Mirosław

[permalink] [raw]
Subject: Re: [PATCH] mmc: cb710: drop free_irq for devm_request_irq allocated irq

On Tue, Sep 24, 2013 at 10:40:57AM +0800, Wei Yongjun wrote:
> From: Wei Yongjun <[email protected]>
>
> irq allocated with devm_request_irq should not be freed using
> free_irq, because doing so causes a dangling pointer, and a
> subsequent double free.
>
> Signed-off-by: Wei Yongjun <[email protected]>

Acked-by: Micha? Miros?aw <[email protected]>