Skip to content

Commit

Permalink
x86, mpx: Give MPX a real config option prompt
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Dave Hansen authored and Thomas Gleixner committed Dec 15, 2014
1 parent 010e593 commit 72e9b5f
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 5 deletions.
6 changes: 5 additions & 1 deletion Documentation/x86/intel_mpx.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
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
Set Extensions Programming Reference, Chapter 9: Intel(R) Memory Protection
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
can be downloaded from
http://software.intel.com/en-us/articles/intel-software-development-emulator
Expand Down
30 changes: 26 additions & 4 deletions arch/x86/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -248,10 +248,6 @@ config HAVE_INTEL_TXT
def_bool y
depends on INTEL_IOMMU && ACPI

config X86_INTEL_MPX
def_bool y
depends on CPU_SUP_INTEL

config X86_32_SMP
def_bool y
depends on X86_32 && SMP
Expand Down Expand Up @@ -1575,6 +1571,32 @@ config X86_SMAP

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
bool "EFI runtime service support"
depends on ACPI
Expand Down

0 comments on commit 72e9b5f

Please sign in to comment.