2010-03-16 53 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);