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

From: Andrew Morton
Date: Thu Jun 25 2009 - 17:20:47 EST


On Tue, 23 Jun 2009 13:54:48 +0200
Richard R__jfors <richard.rojfors.ext@xxxxxxxxxxxxxxx> wrote:

> This patch removes the HR timer, since it's bad to do synchronous I2C
> in the HR timer callback context. The new implementation makes use
> of the global workqueue. The work is scheduled every 5ms when polling
> rather than 5 us.
>

"it's bad" isn't a very good description of the problem which the patch
fixes.

This matters. People wish to make decisions about whether this patch
is needed in 2.6.29.x, 2.6.30.x, 2.6.31, 2.6.32, etc. Without knowing
the effects of the problem which the patch fixes, we cannot make that
decision!

>
> + /* cancel any work */
> + cancel_delayed_work(&ts->work);
> +

Should this have been cancel_delayed_work_sync()?


/*
* Kill off a pending schedule_delayed_work(). Note that the work callback
* function may still be running on return from cancel_delayed_work(), unless
* it returns 1 and the work doesn't re-arm itself. Run flush_workqueue() or
* cancel_work_sync() to wait on it.
*/
static inline int cancel_delayed_work(struct delayed_work *work)



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