diff options
author | 2018-05-19 15:20:49 +0200 | |
---|---|---|
committer | 2018-05-19 15:20:49 +0200 | |
commit | 95b5c0a592c712496dce6c1ed772d5f9026b5ed3 (patch) | |
tree | ef00485760be3388bafc2eed41da185fb8a4858a /kernel/module.c | |
parent | x86/MCE: Fix stack out-of-bounds write in mce-inject.c: Flags_read() (diff) | |
parent | x86/MCE/AMD: Cache SMCA MISC block addresses (diff) | |
download | linux-rng-95b5c0a592c712496dce6c1ed772d5f9026b5ed3.tar.xz linux-rng-95b5c0a592c712496dce6c1ed772d5f9026b5ed3.zip |
Merge branch 'ras/urgent' into ras/core
Pick up urgent fix as pending patch depends on it.
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); |