[PATCH v2] UBUNTU: SAUCE: [x86] fix report of cs-limit nx-emulation

Kees Cook kees at ubuntu.com
Sun Oct 18 16:16:44 UTC 2009


This is a correction to the patch titled "UBUNTU: SAUCE: [x86] implement
cs-limit nx-emulation for ia32" so that NX capabilities are correctly
reported based on actual hardware and arch details.

BugLink: http://bugs.launchpad.net/bugs/454285

Signed-off-by: Kees Cook <kees.cook at canonical.com>
---
 arch/x86/mm/init.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index 10de7ed..2044967 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -77,6 +77,7 @@ static void __init set_nx(void)
 #else
 static inline void set_nx(void)
 {
+	nx_enabled = ( (__supported_pte_mask & _PAGE_NX) == _PAGE_NX );
 }
 #endif
 
@@ -213,8 +214,13 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
 	if (nx_enabled)
 		printk(KERN_INFO "NX (Execute Disable) protection: active\n");
 	else
+#ifdef CONFIG_X86_32
 		printk(KERN_INFO "Using x86 segment limits to approximate "
 			"NX protection\n");
+#else
+		printk(KERN_WARNING "Warning: NX (Execute Disable) protection "
+			"missing in CPU or disabled in BIOS!\n");
+#endif
 
 	/* Enable PSE if available */
 	if (cpu_has_pse)
-- 
1.6.3.3

-- 
Kees Cook
Ubuntu Security Team




More information about the kernel-team mailing list