我正在编写一个使用动态计时器的内核(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);
任何帮助将不胜感激!