diff options
| author | 2018-05-14 09:02:14 +0200 | |
|---|---|---|
| committer | 2018-05-14 09:02:14 +0200 | |
| commit | dfd5c3ea641b1697333e5f6704e4e5dddfafe86b (patch) | |
| tree | 5eab12757acaec0f7ff07a48f4b66140b78eb969 /kernel/module.c | |
| parent | sched/core: Don't schedule threads on pre-empted vCPUs (diff) | |
| parent | Linux 4.17-rc5 (diff) | |
Merge tag 'v4.17-rc5' into sched/core, to pick up fixes and dependencies
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/module.c')
| -rw-r--r-- | kernel/module.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/module.c b/kernel/module.c index ce8066b88178..c9bea7f2b43e 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -3517,6 +3517,11 @@ static noinline int do_init_module(struct module *mod) * walking this with preempt disabled. In all the failure paths, we * call synchronize_sched(), but we don't want to slow down the success * path, so use actual RCU here. + * Note that module_alloc() on most architectures creates W+X page + * mappings which won't be cleaned up until do_free_init() runs. Any + * code such as mark_rodata_ro() which depends on those mappings to + * be cleaned up needs to sync with the queued work - ie + * rcu_barrier_sched() */ call_rcu_sched(&freeinit->rcu, do_free_init); mutex_unlock(&module_mutex); |
