我正在编写两个基本的系统调用。一个将包含用户空间字符串的节点添加到哈希表,另一个则转储表的内容。
添加一些项目并调用转储函数后,它将打印一项,然后以BUG: unable to handle kernel paging request at
崩溃
我试图删除与用户空间字符串相关的所有代码,以确保错误不是来自此。我只添加了table_node
和next
的{{1}},但遇到了相同的错误。
我感觉自己正在忽略一些非常简单的东西。我在增加或走桌子的方式上有什么惊喜吗?
key
谢谢您的帮助!
答案 0 :(得分:0)
卡米尔的解决方案奏效。
我忘记了动态分配内存。添加这两行解决了我的问题。
table_node *newNode = kmalloc(sizeof(table_node), GFP_KERNEL);
newNode-fname = kmalloc(strLen * sizeof(char)+1, GFP_KERNEL);