diff options
author | Radim Krčmář <rkrcmar@redhat.com> | 2018-05-26 13:45:49 +0200 |
---|---|---|
committer | Radim Krčmář <rkrcmar@redhat.com> | 2018-05-26 13:45:49 +0200 |
commit | f33ecec9bb5199c5a4dd296af604f70273d2636e (patch) | |
tree | ba12665fe8f7952a64013bef9125bfac27ff1fda /kernel/module.c | |
parent | 0ea3286e2df74c9ec2fadbf91170cd3edd14e3e5 (diff) | |
parent | 2d2ccf24939cf369f7473c7e4ea309891be91848 (diff) | |
download | blackbird-obmc-linux-f33ecec9bb5199c5a4dd296af604f70273d2636e.tar.gz blackbird-obmc-linux-f33ecec9bb5199c5a4dd296af604f70273d2636e.zip |
Merge branch 'x86/hyperv' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
To resolve conflicts with the PV TLB flush series.
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); |