我尝试修改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]无法在虚拟地址处理内核空指针解除引用
答案 0 :(得分:1)
你的函数timer_add声明了局部变量timer,当函数返回时,它超出了范围。但是你将它作为参数传递给函数setup_timer,它用于设置你的回调函数。
当稍后执行回调函数时,它会引用您的变量计时器,该计时器不再存在。
您必须将变量计时器声明为静态变量或使用全局变量。