Browse Source

x86, mpx: Give MPX a real config option prompt

Give MPX a real config option. The CPUs that support it (referenced
here):

  https://software.intel.com/en-us/forums/topic/402393

are not available publicly yet. Right now only the software emulator
provides MPX for the general public.

[ tglx: Make it default off. There is no point in having it on right
        now as no hardware and no proper tooling support are available ]

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Dave Hansen <dave@sr71.net>
Link: http://lkml.kernel.org/r/20141212183836.2569D58D@viggo.jf.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Dave Hansen 10 years ago
parent
commit
72e9b5fe9b
2 changed files with 31 additions and 5 deletions
  1. 5 1
      Documentation/x86/intel_mpx.txt
  2. 26 4
      arch/x86/Kconfig

+ 5 - 1
Documentation/x86/intel_mpx.txt

@@ -7,11 +7,15 @@ that can be used in conjunction with compiler changes to check memory
 references, for those references whose compile-time normal intentions are
 references, for those references whose compile-time normal intentions are
 usurped at runtime due to buffer overflow or underflow.
 usurped at runtime due to buffer overflow or underflow.
 
 
+You can tell if your CPU supports MPX by looking in /proc/cpuinfo:
+
+	cat /proc/cpuinfo  | grep ' mpx '
+
 For more information, please refer to Intel(R) Architecture Instruction
 For more information, please refer to Intel(R) Architecture Instruction
 Set Extensions Programming Reference, Chapter 9: Intel(R) Memory Protection
 Set Extensions Programming Reference, Chapter 9: Intel(R) Memory Protection
 Extensions.
 Extensions.
 
 
-Note: Currently no hardware with MPX ISA is available but it is always
+Note: As of December 2014, no hardware with MPX is available but it is
 possible to use SDE (Intel(R) Software Development Emulator) instead, which
 possible to use SDE (Intel(R) Software Development Emulator) instead, which
 can be downloaded from
 can be downloaded from
 http://software.intel.com/en-us/articles/intel-software-development-emulator
 http://software.intel.com/en-us/articles/intel-software-development-emulator

+ 26 - 4
arch/x86/Kconfig

@@ -248,10 +248,6 @@ config HAVE_INTEL_TXT
 	def_bool y
 	def_bool y
 	depends on INTEL_IOMMU && ACPI
 	depends on INTEL_IOMMU && ACPI
 
 
-config X86_INTEL_MPX
-	def_bool y
-	depends on CPU_SUP_INTEL
-
 config X86_32_SMP
 config X86_32_SMP
 	def_bool y
 	def_bool y
 	depends on X86_32 && SMP
 	depends on X86_32 && SMP
@@ -1575,6 +1571,32 @@ config X86_SMAP
 
 
 	  If unsure, say Y.
 	  If unsure, say Y.
 
 
+config X86_INTEL_MPX
+	prompt "Intel MPX (Memory Protection Extensions)"
+	def_bool n
+	depends on CPU_SUP_INTEL
+	---help---
+	  MPX provides hardware features that can be used in
+	  conjunction with compiler-instrumented code to check
+	  memory references.  It is designed to detect buffer
+	  overflow or underflow bugs.
+
+	  This option enables running applications which are
+	  instrumented or otherwise use MPX.  It does not use MPX
+	  itself inside the kernel or to protect the kernel
+	  against bad memory references.
+
+	  Enabling this option will make the kernel larger:
+	  ~8k of kernel text and 36 bytes of data on a 64-bit
+	  defconfig.  It adds a long to the 'mm_struct' which
+	  will increase the kernel memory overhead of each
+	  process and adds some branches to paths used during
+	  exec() and munmap().
+
+	  For details, see Documentation/x86/intel_mpx.txt
+
+	  If unsure, say N.
+
 config EFI
 config EFI
 	bool "EFI runtime service support"
 	bool "EFI runtime service support"
 	depends on ACPI
 	depends on ACPI