【发布时间】:2013-07-14 02:08:19
【问题描述】:
我在一个 Linux 内核模块中,我分配了一些内存,例如 vmalloc()。我想让内存有读、写和执行权限。这样做的干净和适当的方法是什么?基本上,这通常相当于调用mprotect(),但在内核空间中。
如果我进行页面遍历,pgd_offset()、pud_offset()、pmd_offset()、pte_offset_map(),然后是pte_mkwrite(),当我在 2.6.39 上尝试时遇到链接错误。另外,如果我在做page walk,这似乎是一种hack,应该有一个更干净、更合适的方法。
我的内核模块将是一个可加载模块,因此我无法使用内部符号。
提前感谢您的指导。
【问题讨论】: