diff options
author | Suresh Siddha <suresh.b.siddha@intel.com> | 2009-10-29 02:46:56 (GMT) |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-11-02 16:16:35 (GMT) |
commit | 502f660466ba7a66711ffdf414b1f7f1131dcbf7 (patch) | |
tree | 9b5ac4309f392855108365d3d17406ce3199d2eb /arch/x86/mm/init_64.c | |
parent | 883242dd0e5faaba041528a9a99f483f2a656c83 (diff) | |
download | linux-fsl-qoriq-502f660466ba7a66711ffdf414b1f7f1131dcbf7.tar.xz |
x86, cpa: Fix kernel text RO checks in static_protection()
Steven Rostedt reported that we are unconditionally making the
kernel text mapping as read-only. i.e., if someone does cpa() to
the kernel text area for setting/clearing any page table
attribute, we unconditionally clear the read-write attribute for
the kernel text mapping that is set at compile time.
We should delay (to forbid the write attribute) and enforce only
after the kernel has mapped the text as read-only.
Reported-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Tested-by: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <20091029024820.996634347@sbs-t61.sc.intel.com>
[ marked kernel_set_to_readonly as __read_mostly ]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/mm/init_64.c')
-rw-r--r-- | arch/x86/mm/init_64.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 0ed09fa..4b507c0 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -695,7 +695,7 @@ void __init mem_init(void) const int rodata_test_data = 0xC3; EXPORT_SYMBOL_GPL(rodata_test_data); -static int kernel_set_to_readonly; +int kernel_set_to_readonly; void set_kernel_text_rw(void) { |