add_timer crashes the kernel,Why?

Mulyadi Santosa mulyadi.santosa at
Mon Dec 20 04:08:22 EST 2010

Hi :)

On Mon, Dec 20, 2010 at 15:27, lijin liu <llj098 at> wrote:
> Hello everyone!
> I want to use the timer in my kernel module. I read the book  _Linux
> kernel development 3rd version_  and LDD 3rd version.
> Both the two books tell me write the code like this:
> struct timer_list my_timer;
> init_timer(&my_timer);
> my_timer.expires = jiffies + wait;
> = 0;
> my_timer.function=my_function;
> //active the timer:
> add_timer(&timer);
> When I insmod the module, the kernel crashed, and when I change my
> code to *mod_timer* rather than add_timer.

Hmmm, from, it reads:
void add_timer(struct timer_list *timer)
        mod_timer(timer, timer->expires);

thus, IMHO the error happened because there is other timer pending...
somehow it is forbidden to add timer when other are still in queue in
latest kernel


Mulyadi Santosa
Freelance Linux trainer and consultant


More information about the Kernelnewbies mailing list