[PATCH] Input: h3600_ts: fix a leak of the IRQ during init failure

From: Axel Lin
Date: Sun May 01 2011 - 12:14:01 EST


In h3600ts_connect error path, free_irq() was using ts->dev rather than the
&ts->dev as the data pointer so free_irq() wouldn't have matched.

Signed-off-by: Axel Lin <axel.lin@xxxxxxxxx>
---
drivers/input/touchscreen/h3600_ts_input.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/input/touchscreen/h3600_ts_input.c b/drivers/input/touchscreen/h3600_ts_input.c
index 45f93d0..e45ae38 100644
--- a/drivers/input/touchscreen/h3600_ts_input.c
+++ b/drivers/input/touchscreen/h3600_ts_input.c
@@ -424,8 +424,8 @@ static int h3600ts_connect(struct serio *serio, struct serio_driver *drv)

fail4: serio_close(serio);
fail3: serio_set_drvdata(serio, NULL);
- free_irq(IRQ_GPIO_BITSY_NPOWER_BUTTON, ts->dev);
-fail2: free_irq(IRQ_GPIO_BITSY_ACTION_BUTTON, ts->dev);
+ free_irq(IRQ_GPIO_BITSY_NPOWER_BUTTON, &ts->dev);
+fail2: free_irq(IRQ_GPIO_BITSY_ACTION_BUTTON, &ts->dev);
fail1: input_free_device(input_dev);
kfree(ts);
return err;
--
1.7.1



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/