Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.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
C 在Linux内核模块(驱动程序)关键部分等待用户空间输入_C_Linux_Linux Kernel_Driver_Linux Device Driver - Fatal编程技术网

C 在Linux内核模块(驱动程序)关键部分等待用户空间输入

C 在Linux内核模块(驱动程序)关键部分等待用户空间输入,c,linux,linux-kernel,driver,linux-device-driver,C,Linux,Linux Kernel,Driver,Linux Device Driver,我是内核编程新手,在Linux驱动程序中做了一些更改。我想在用户输入的关键部分阻塞/等待(驱动程序和用户空间应用程序之间的通信)。问题是,当我使用wait\u event\u timeout()时,系统正在崩溃,而我正在恢复 BUG:scheduling while-atomic:swapper。 有谁知道如何解决这个问题,能给我一些建议从哪里开始吗 如前所述,当您已经获取了一些锁(在关键部分内)时,您正在上下文中调用wait\u event\u timeout。在这一点上,您的进程可能会与其他

我是内核编程新手,在Linux驱动程序中做了一些更改。我想在用户输入的关键部分阻塞/等待(驱动程序和用户空间应用程序之间的通信)。问题是,当我使用wait\u event\u timeout()时,系统正在崩溃,而我正在恢复
BUG:scheduling while-atomic:swapper

有谁知道如何解决这个问题,能给我一些建议从哪里开始吗

如前所述,当您已经获取了一些锁(在关键部分内)时,您正在上下文中调用wait\u event\u timeout。在这一点上,您的进程可能会与其他进程发生死锁,调度器会对此进行投诉。请查看调用wait\u event\u timeout的点,并检查I/O是否在正确的位置执行,以及在将进程发送到睡眠之前是否已解锁所有同步原语。

您不能在关键部分等待用户输入。这是一个错误。您希望如何获取“用户输入”?您如何进入关键部分?关键部分仅用于原子操作,不用于通过netlink套接字获取用户输入的I/OI。我编写了一个回调函数,用于接收drv_init文件中不在关键部分的MSG。我想在关键部分阻塞/等待,直到调用回调函数。是的-你的设计被破坏了:(