x86, mm: Clean up and simplify NX enablement
authorH. Peter Anvin <hpa@zytor.com>
Fri, 13 Nov 2009 23:28:16 +0000 (15:28 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Mon, 16 Nov 2009 21:44:59 +0000 (13:44 -0800)
commit4763ed4d45522b876c97e1f7f4b659d211f75571
treeae053500de9f1c374e4b7f34d8f21d45a5b961d2
parent583140afb989f24d115e80be5c91e503b58ccfc0
x86, mm: Clean up and simplify NX enablement

The 32- and 64-bit code used very different mechanisms for enabling
NX, but even the 32-bit code was enabling NX in head_32.S if it is
available.  Furthermore, we had a bewildering collection of tests for
the available of NX.

This patch:

a) merges the 32-bit set_nx() and the 64-bit check_efer() function
   into a single x86_configure_nx() function.  EFER control is left
   to the head code.

b) eliminates the nx_enabled variable entirely.  Things that need to
   test for NX enablement can verify __supported_pte_mask directly,
   and cpu_has_nx gives the supported status of NX.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Vegard Nossum <vegardno@ifi.uio.no>
Cc: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Chris Wright <chrisw@sous-sol.org>
LKML-Reference: <1258154897-6770-5-git-send-email-hpa@zytor.com>
Acked-by: Kees Cook <kees.cook@canonical.com>
arch/x86/include/asm/proto.h
arch/x86/kernel/cpu/common.c
arch/x86/kernel/setup.c
arch/x86/mm/init.c
arch/x86/mm/setup_nx.c
arch/x86/xen/enlighten.c