summaryrefslogtreecommitdiff
path: root/arch/arm/mm/init.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2018-07-20 00:11:52 +0300
committerThomas Gleixner <tglx@linutronix.de>2018-07-20 00:11:52 +0300
commit73ab603f44149ff48889d5109ea9ab64bf38cc69 (patch)
tree9550d8fb31ddf6dffedf1f602ed44769e529c1d3 /arch/arm/mm/init.c
parent41afb1dfad4d6af0c716746f6a15f3230482955c (diff)
parentfb7d1bcf1602b46f37ada72178516c01a250e434 (diff)
downloadlinux-73ab603f44149ff48889d5109ea9ab64bf38cc69.tar.xz
Merge branch 'linus' into x86/timers
Pick up upstream changes to avoid conflicts
Diffstat (limited to 'arch/arm/mm/init.c')
-rw-r--r--arch/arm/mm/init.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index c186474422f3..0cc8e04295a4 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -736,20 +736,29 @@ static int __mark_rodata_ro(void *unused)
return 0;
}
+static int kernel_set_to_readonly __read_mostly;
+
void mark_rodata_ro(void)
{
+ kernel_set_to_readonly = 1;
stop_machine(__mark_rodata_ro, NULL, NULL);
debug_checkwx();
}
void set_kernel_text_rw(void)
{
+ if (!kernel_set_to_readonly)
+ return;
+
set_section_perms(ro_perms, ARRAY_SIZE(ro_perms), false,
current->active_mm);
}
void set_kernel_text_ro(void)
{
+ if (!kernel_set_to_readonly)
+ return;
+
set_section_perms(ro_perms, ARRAY_SIZE(ro_perms), true,
current->active_mm);
}