summaryrefslogtreecommitdiffstats
path: root/init/main.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2018-05-14 11:22:59 +0200
committerIngo Molnar <mingo@kernel.org>2018-05-14 11:22:59 +0200
commit4b96583869c4d990b779eca72976063970d41b8d (patch)
treef2fdb7760a06f6445f33fdee3ec512fbdb46fcb4 /init/main.c
parentdt-bindings/gic-v3: Add documentation for MBI support (diff)
parentLinux 4.17-rc5 (diff)
downloadlinux-4b96583869c4d990b779eca72976063970d41b8d.tar.xz
linux-4b96583869c4d990b779eca72976063970d41b8d.zip
Merge tag 'v4.17-rc5' into irq/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'init/main.c')
-rw-r--r--init/main.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/init/main.c b/init/main.c
index b795aa341a3a..fd37315835b4 100644
--- a/init/main.c
+++ b/init/main.c
@@ -423,7 +423,7 @@ static noinline void __ref rest_init(void)
/*
* Enable might_sleep() and smp_processor_id() checks.
- * They cannot be enabled earlier because with CONFIG_PRREMPT=y
+ * They cannot be enabled earlier because with CONFIG_PREEMPT=y
* kernel_thread() would trigger might_sleep() splats. With
* CONFIG_PREEMPT_VOLUNTARY=y the init task might have scheduled
* already, but it's stuck on the kthreadd_done completion.
@@ -1034,6 +1034,13 @@ __setup("rodata=", set_debug_rodata);
static void mark_readonly(void)
{
if (rodata_enabled) {
+ /*
+ * load_module() results in W+X mappings, which are cleaned up
+ * with call_rcu_sched(). Let's make sure that queued work is
+ * flushed so that we don't hit false positives looking for
+ * insecure pages which are W+X.
+ */
+ rcu_barrier_sched();
mark_rodata_ro();
rodata_test();
} else