summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2010-12-25 09:58:34 +0100
committerIngo Molnar <mingo@elte.hu>2010-12-25 09:58:34 +0100
commitbc59e56fbad784f85b3917f65f11f4dddffc2722 (patch)
treeb7b9acb6a845d99d4fa06a01d0305631923f63a1 /kernel
parentcf35ab62e0eae3c379f3b6f4da167775f1bf19e4 (diff)
parent94462ad3b14739d158a1ab87bb30008c1e5a6bc1 (diff)
Merge branch 'x86/security' into auto-latest
Diffstat (limited to 'kernel')
-rw-r--r--kernel/module.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/kernel/module.c b/kernel/module.c
index 562f665c721f..34e00b708fad 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2816,18 +2816,6 @@ static struct module *load_module(void __user *umod,
kfree(info.strmap);
free_copy(&info);
- /* Set RO and NX regions for core */
- set_section_ro_nx(mod->module_core,
- mod->core_text_size,
- mod->core_ro_size,
- mod->core_size);
-
- /* Set RO and NX regions for init */
- set_section_ro_nx(mod->module_init,
- mod->init_text_size,
- mod->init_ro_size,
- mod->init_size);
-
/* Done! */
trace_module_load(mod);
return mod;
@@ -2888,6 +2876,18 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
blocking_notifier_call_chain(&module_notify_list,
MODULE_STATE_COMING, mod);
+ /* Set RO and NX regions for core */
+ set_section_ro_nx(mod->module_core,
+ mod->core_text_size,
+ mod->core_ro_size,
+ mod->core_size);
+
+ /* Set RO and NX regions for init */
+ set_section_ro_nx(mod->module_init,
+ mod->init_text_size,
+ mod->init_ro_size,
+ mod->init_size);
+
do_mod_ctors(mod);
/* Start the module */
if (mod->init != NULL)