Я пишу модуль ядра (2.6.28), который использует динамический таймер. Я использую структуру timer_list следующим образом:
struct timer_list our_timer;
init_timer(&our_timer);
our_timer.function = handleFlowTimer;
our_timer.expires = jiffies + 2000;
our_timer.data = 0;
add_timer(&our_timer);
void handleFlowTimer(unsigned long data)
{
//do nothing
}
Это работает нормально в течение примерно 2 секунд, пока не истечет таймер. Затем система падает. Я также пробовал что-то подобное с тем же результатом:
struct timer_list our_timer = TIMER_INITIALIZER(handleFlowTimer, 0, 0);
mod_timer(&our_timer, jiffies + 2000);
Любая помощь будет принята с благодарностью!