BUG:从 mm/slub.c:1719 处的无效上下文调用睡眠函数

ker*_*der 0 c linux-kernel

我已经分配了一个指针

int *ptr = kmalloc(sizeof(int), GFP_ATOMIC); 
Run Code Online (Sandbox Code Playgroud)

并且该指针在具有 5 秒超时值的计时器函数中被释放。

if( NULL != ptr )                
{                 
  kfree(ptr);
  ptr = NULL;
}
Run Code Online (Sandbox Code Playgroud)

请告诉我这里有什么问题.. 提前致谢。

CL.*_*CL. 5

kfree() 不得在原子上下文中使用,例如计时器函数。

将其移动到另一个上下文,例如工作队列。