2010-03-16 5 views
6

Ich schreibe ein Linux-Kernel-Modul, und ich würde gerne eine ausführbare Seite zuweisen. Plain kmalloc gibt einen Zeiger innerhalb einer nicht ausführbaren Seite zurück, und ich bekomme einen Kernel-Fehler, wenn ich Code dort ausführe. Es muss auf Ubuntu Karmic x86, 2.6.31-20-generic-pae arbeiten.Wie kann man eine ausführbare Seite in einem Linux-Kernel-Modul zuordnen?

+2

Kann ich fragen, warum Sie eine ausführbare Seite möchten? Ich bin neugierig. – stsquad

Antwort

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);