aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/mm/init_32.c
diff options
context:
space:
mode:
authorArjan van de Ven <arjan@infradead.org>2008-01-30 07:34:08 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:34:08 -0500
commitedeed30589f5defe63ce6aaae56f2b7c855e4520 (patch)
treea49736ff74dcbd3feba3c8318b204fb2165f892d /arch/x86/mm/init_32.c
parentadafdf6a4e45f2d1051e10aebe13025e89dbdf6d (diff)
x86: add testcases for RODATA and NX protections/attributes
Latest update; I now have 4 NX tests, but 2 fail so they're #if 0'd. I also cleaned up the NX test code quite a bit, and got rid of the ugly exception table sorting stuff. From: Arjan van de Ven <arjan@linux.intel.com> This patch adds testcases for the CONFIG_DEBUG_RODATA configuration option as well as the NX CPU feature/mappings. Both testcases can move to tests/ once that patch gets merged into mainline. (I'm half considering moving the rodata test into mm/init.c but I'll wait with that until init.c is unified) As part of this I had to fix a not-quite-right alignment in the vmlinux.lds.h for the RODATA sections, which lead to 1 page less being marked read only. Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/mm/init_32.c')
-rw-r--r--arch/x86/mm/init_32.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 4d1156545194..a72737c05747 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -736,6 +736,8 @@ static int noinline do_test_wp_bit(void)
736} 736}
737 737
738#ifdef CONFIG_DEBUG_RODATA 738#ifdef CONFIG_DEBUG_RODATA
739const int rodata_test_data = 0xC3;
740EXPORT_SYMBOL_GPL(rodata_test_data);
739 741
740void mark_rodata_ro(void) 742void mark_rodata_ro(void)
741{ 743{
@@ -765,6 +767,7 @@ void mark_rodata_ro(void)
765 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT); 767 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
766 printk("Write protecting the kernel read-only data: %luk\n", 768 printk("Write protecting the kernel read-only data: %luk\n",
767 size >> 10); 769 size >> 10);
770 rodata_test();
768 771
769#ifdef CONFIG_CPA_DEBUG 772#ifdef CONFIG_CPA_DEBUG
770 printk("Testing CPA: undo %lx-%lx\n", start, start + size); 773 printk("Testing CPA: undo %lx-%lx\n", start, start + size);