我正在尝试制作一个在 2.6.32 内核上工作的内核模块以在 3.6 内核上工作。我们使用 IOCTL 调用来更新 Linux 内核模块中的结构。这些调用在 2.6.32 内核中运行良好。
当我在 3.6 内核中尝试相同的操作时,只要从用户空间应用程序进行 ioctl 调用,我就会面临内核挂起。它是基于套接字的接口而不是基于文件的接口,因此我们使用 struct proto_ops 下的 ioctl。
由于没有生成核心转储,我该如何调试这种情况。要从用户空间复制数据,我正在使用 copy_from_user 命令。
调试此方案的任何指针都会非常有帮助