Re: [announce] [patch] NX (No eXecute) support for x86,2.6.7-rc2-bk2

From: Andi Kleen
Date: Thu Jun 03 2004 - 04:45:50 EST


Ingo Molnar <mingo@xxxxxxx> writes:

> * Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote:
>
>> You want to replace the arch-specific module_alloc() function for
>> this. Or even better, reset the NX bit only on executable sections (in
>> the arch-specific module_finalize(), using mod->core_text_size and
>> mod->init_text_size). No generic changes necessary.
>
> this reminds me of another issue: x86_64 currently seems to manually map
> the whole module via PAGE_KERNEL_EXEC. Andi, we could change it to use
> vmalloc_exec(), right?

Nope, the manual map is needed. On x86-64 kernels are linked in the
"kernel" code model and the modules must be within 2GB of the main
kernel text. vmalloc space is elsewhere.

To fix this you would need to link the modules with -fPIC and
add a full dynamic linker to the module loader, which would
probably not be worth the effort.

-Andi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/