错误:从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章。