x86, cpu: Enable/disable Supervisor Mode Execution Protection
authorFenghua Yu <fenghua.yu@intel.com>
Wed, 11 May 2011 23:51:05 +0000 (16:51 -0700)
committerH. Peter Anvin <hpa@linux.intel.com>
Wed, 18 May 2011 04:22:00 +0000 (21:22 -0700)
commitde5397ad5b9ad22e2401c4dacdf1bb3b19c05679
treee8c612c4f84efe458d8ec3c23f1bfd834f20c0f2
parentdc23c0bccf5eea171c87b3db285d032b9a5f06c4
x86, cpu: Enable/disable Supervisor Mode Execution Protection

Enable/disable newly documented SMEP (Supervisor Mode Execution Protection) CPU
feature in kernel. CR4.SMEP (bit 20) is 0 at power-on. If the feature is
supported by CPU (X86_FEATURE_SMEP), enable SMEP by setting CR4.SMEP. New kernel
option nosmep disables the feature even if the feature is supported by CPU.

[ hpa: moved the call to setup_smep() until after the vendor-specific
  initialization; that ensures that CPUID features are unmasked.  We
  will still run it before we have userspace (never mind uncontrolled
  userspace). ]

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
LKML-Reference: <1305157865-31727-1-git-send-email-fenghua.yu@intel.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Documentation/kernel-parameters.txt
arch/x86/kernel/cpu/common.c