Re: [PATCH 1/2] tsc2007: remove HR timer

From: Thierry Reding
Date: Tue Jul 14 2009 - 03:08:48 EST


* Dmitry Torokhov wrote:
> Hi Richard,
>
> On Tue, Jun 23, 2009 at 01:54:48PM +0200, Richard RÃjfors wrote:
[...]
> +static void tsc2007_free_irq(struct tsc2007 *ts)
> +{
> + free_irq(ts->irq, ts);
> + if (cancel_delayed_work_sync(&ts->work)) {
> + /*
> + * Work was pending, therefore we need to enable
> + * IRQ here to balance the disable_irq() done in the
> + * interrupt handler.
> + */
> + enable_irq(ts->irq);
> + }
> +}
[...]
> -static int tsc2007_remove(struct i2c_client *client)
> +static int __devexit tsc2007_remove(struct i2c_client *client)
> {
> struct tsc2007 *ts = i2c_get_clientdata(client);
> - struct tsc2007_platform_data *pdata;
> + struct tsc2007_platform_data *pdata = client->dev.platform_data;
>
> - cancel_delayed_work_sync(&ts->work);
> + free_irq(ts->irq, ts);
> + if (cancel_delayed_work_sync(&ts->work)) {
> + /*
> + * Work was pending, therefore we need to enable
> + * IRQ here to balance the disabel done in the
> + * interrupt handler.
> + */
> + enable_irq(ts->irq);
> + }

Shouldn't this be tsc2007_free_irq(ts) as well?

Thierry
--
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/