Re: repeat a function after fixed time period

From: linux-os
Date: Wed Mar 23 2005 - 17:01:51 EST


On Wed, 23 Mar 2005, Arjan van de Ven wrote:

On Wed, 2005-03-23 at 15:56 -0500, linux-os wrote:
static void start_timer(void)
{
if(!atomic_read(&info->running))
{
atomic_inc(&info->running);

same race.

No such race at all.

here there is one; you use add_timer() which isn't allowed on running
timers, only mod_timer() is. So yes there is a race.


Well add_timer() is only executed after the timer has expired
or hasn't started yet so the "isn't allowed" is pretty broad.
If I should use mod_timer(), then there are a _lot_ of buggy
drivers in the kernel because that's how a lot repeat the
sequence. Will mod_timer() actually restart the timer???

If so, I'll change it and thank you for the help.


Cheers,
Dick Johnson
Penguin : Linux version 2.6.11 on an i686 machine (5537.79 BogoMips).
Notice : All mail here is now cached for review by Dictator Bush.
98.36% of all statistics are fiction.
-
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/