x86: ifdef 32-bit specific setup in init_memory_mapping()
authorPekka Enberg <penberg@cs.helsinki.fi>
Thu, 5 Mar 2009 12:54:56 +0000 (14:54 +0200)
committerIngo Molnar <mingo@elte.hu>
Thu, 5 Mar 2009 13:17:12 +0000 (14:17 +0100)
Impact: cleanup

Enabling NX, PSE, and PGE are only required on 32-bit so ifdef them
in both versions of the function.

Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Yinghai Lu <yinghai@kernel.org>
LKML-Reference: <1236257708-27269-5-git-send-email-penberg@cs.helsinki.fi>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/mm/init_32.c
arch/x86/mm/init_64.c

index cfc68d601380e8d95960cdcb4ecb6dc3eb1c19f0..eb98cb90cb39f367687f525d208957c47d4d3ee4 100644 (file)
@@ -948,6 +948,7 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
        use_gbpages = direct_gbpages;
 #endif
 
+#ifdef CONFIG_X86_32
 #ifdef CONFIG_X86_PAE
        set_nx();
        if (nx_enabled)
@@ -963,6 +964,7 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
                set_in_cr4(X86_CR4_PGE);
                __supported_pte_mask |= _PAGE_GLOBAL;
        }
+#endif
 
        if (use_gbpages)
                page_size_mask |= 1 << PG_LEVEL_1G;
index 151e5ba3441220a3f464dff6d3891dd4cb1d4367..c3c0be5b63737d6b73a1e7b89cba8fffb0465642 100644 (file)
@@ -712,6 +712,24 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
        use_gbpages = direct_gbpages;
 #endif
 
+#ifdef CONFIG_X86_32
+#ifdef CONFIG_X86_PAE
+       set_nx();
+       if (nx_enabled)
+               printk(KERN_INFO "NX (Execute Disable) protection: active\n");
+#endif
+
+       /* Enable PSE if available */
+       if (cpu_has_pse)
+               set_in_cr4(X86_CR4_PSE);
+
+       /* Enable PGE if available */
+       if (cpu_has_pge) {
+               set_in_cr4(X86_CR4_PGE);
+               __supported_pte_mask |= _PAGE_GLOBAL;
+       }
+#endif
+
        if (use_gbpages)
                page_size_mask |= 1 << PG_LEVEL_1G;
        if (use_pse)