2010-03-16 78 views
6

我正在写一个Linux内核模块,我想分配一个可执行页面。 Plain kmalloc在不可执行的页面中返回一个指针,并且在那里执行代码时出现内核恐慌。它必须在Ubuntu Karmic x86,2.6.31-20-generic-pae上工作。如何在Linux内核模块中分配可执行页面?

+2

我可以问你为什么要一个可执行页面吗?我很好奇。 – stsquad 2010-03-17 13:27:27

回答

8
#include <linux/vmalloc.h> 
#include <asm/pgtype_types.h> 
... 
char *p = __vmalloc(byte_size, GFP_KERNEL, PAGE_KERNEL_EXEC); 
... 
if (p != NULL) vfree(p);