Linux kernel Linux内核模块之间共享缓冲区导致“无法处理虚拟地址XXXXX处的内核分页请求”

Linux kernel Linux内核模块之间共享缓冲区导致“无法处理虚拟地址XXXXX处的内核分页请求”,linux-kernel,linux-device-driver,kernel-module,Linux Kernel,Linux Device Driver,Kernel Module,我有一个内核模块,声明为char arr[100];然后像, 出口符号 在第二个模块中,我尝试将其用作extern char*arr;当我尝试snprintfbuffer时,读取此模块,100,%s\n,arr 这一行给出了如下错误: Unable to handle kernel paging request at virtual address XXXXX" 产生这种情况的原因是什么?我的问题通过使用extern char arr[100]解决了;在第二个模块中。您确定两个模块都已加载,并

我有一个内核模块,声明为char arr[100];然后像, 出口符号

在第二个模块中,我尝试将其用作extern char*arr;当我尝试snprintfbuffer时,读取此模块,100,%s\n,arr

这一行给出了如下错误:

Unable to handle kernel paging request at virtual address XXXXX"

产生这种情况的原因是什么?

我的问题通过使用extern char arr[100]解决了;在第二个模块中。

您确定两个模块都已加载,并且在使用arr加载模块后需要访问吗?我认为更好的方法是创建函数,它将返回缓冲区的地址。是的,第一个插入的模块带有arr[100],然后我尝试从第二个模块读取值。缓冲区的大小是多少?@osgx:我的问题通过获取extern char arr[100]解决了;在第二个模块中。谢谢你的时间。你能为后代回答你自己的问题吗?回答你自己的问题并接受它对我来说很有意义。这将有助于整个社区。请继续读下去