Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:从mm/slub.c:1719处的无效上下文调用休眠函数_C_Linux Kernel - Fatal编程技术网

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

错误:从mm/slub.c:1719处的无效上下文调用休眠函数,c,linux-kernel,C,Linux Kernel,我分配了一个指针,如 int *ptr = kmalloc(sizeof(int), GFP_ATOMIC); 这个指针被释放在一个计时器函数中,该函数有5秒的超时值 if( NULL != ptr ) { kfree(ptr); ptr = NULL; } 请告诉我这里出了什么问题。。提前感谢。不得在原子上下文中使用kfree(),例如计时器函数 将其移动到另一个上下文,例如工作队列。kfree()不得在原子上下文

我分配了一个指针,如

int *ptr = kmalloc(sizeof(int), GFP_ATOMIC); 
这个指针被释放在一个计时器函数中,该函数有5秒的超时值

if( NULL != ptr )                
{                 
  kfree(ptr);
  ptr = NULL;
}
请告诉我这里出了什么问题。。提前感谢。

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

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

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


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

我看不出有任何错误。您遇到了什么问题?错误:从mm/slub的无效上下文调用了sleep函数。c:1719I正在尝试从计时器超时函数中释放分配的内存(由GFP_ATOMIC)。。我能用它吗?我看不出有什么理由你不能。你不能调用一个可以从该上下文中休眠的函数,错误说明了你需要的一切…我看不出有任何错误。您遇到了什么问题?错误:从mm/slub的无效上下文调用了sleep函数。c:1719I正在尝试从计时器超时函数中释放分配的内存(由GFP_ATOMIC)。。我能用它吗?我看不出有什么原因你不能。你不能调用一个可以从该上下文休眠的函数,错误说明了你需要的一切…谢谢你的回复。。我是内核编码新手。。你能给我举个工作队列的例子吗。。或者有什么好的链接吗?例如,请参阅的第7章。谢谢回复。。我是内核编码新手。。你能给我举个工作队列的例子吗。。或者有什么好的链接吗?例如,请参见第7章。