diff options
author | Dave Airlie <airlied@redhat.com> | 2018-05-18 14:08:53 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2018-05-18 14:08:53 +1000 |
commit | 1fafef9dfe127bdd4600eeaca302f0c1cb4ee5d0 (patch) | |
tree | f829e8a26fc768666eb5f827bf5817892ea7e46c /kernel/module.c | |
parent | 315852b422972e6ebb1dfddaadada09e46a2681a (diff) | |
parent | 76ef6b28ea4f81c3d511866a9b31392caa833126 (diff) |
Merge drm-fixes-for-v4.17-rc6-urgent into drm-next
Need to backmerge some nouveau fixes to reduce
the nouveau -next conflicts a lot.
Signed-off-by: Dave Airlie <airlied@redhat.com>
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 ce8066b881782..c9bea7f2b43e3 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); |