内核计时器功能错误

时间:2015-06-20 04:32:58

标签: linux timer kernel tizen

我尝试修改tizen内核。 我正在测试每一行。所以,我发现mod_timer是内核错误 问题是什么???

代码是

  void timer_add(void){
      struct timer_list timer; 
      setup_timer(&timer, kill_callback, 0); 
      mod_timer(&timer, jiffies + msecs_to_jiffies(3000));
  }

 void kill_callback(unsigned long data)
{
    sys_kill(current->pid, SIGKILL);
    return ;
}

[19.029281]无法在虚拟地址处理内核空指针解除引用

1 个答案:

答案 0 :(得分:1)

你的函数timer_add声明了局部变量timer,当函数返回时,它超出了范围。但是你将它作为参数传递给函数setup_timer,它用于设置你的回调函数。

当稍后执行回调函数时,它会引用您的变量计时器,该计时器不再存在。

您必须将变量计时器声明为静态变量或使用全局变量。