動的タイマーを使用するカーネル (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);
どんな助けでも大歓迎です!