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-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html