diff options
| -rw-r--r-- | Documentation/x86/intel_mpx.txt | 6 | ||||
| -rw-r--r-- | arch/x86/Kconfig | 30 |
2 files changed, 31 insertions, 5 deletions
diff --git a/Documentation/x86/intel_mpx.txt b/Documentation/x86/intel_mpx.txt index 6ca6e2bd9ae9..818518a3ff01 100644 --- a/Documentation/x86/intel_mpx.txt +++ b/Documentation/x86/intel_mpx.txt | |||
| @@ -7,11 +7,15 @@ that can be used in conjunction with compiler changes to check memory | |||
| 7 | references, for those references whose compile-time normal intentions are | 7 | references, for those references whose compile-time normal intentions are |
| 8 | usurped at runtime due to buffer overflow or underflow. | 8 | usurped at runtime due to buffer overflow or underflow. |
| 9 | 9 | ||
| 10 | You can tell if your CPU supports MPX by looking in /proc/cpuinfo: | ||
| 11 | |||
| 12 | cat /proc/cpuinfo | grep ' mpx ' | ||
| 13 | |||
| 10 | For more information, please refer to Intel(R) Architecture Instruction | 14 | For more information, please refer to Intel(R) Architecture Instruction |
| 11 | Set Extensions Programming Reference, Chapter 9: Intel(R) Memory Protection | 15 | Set Extensions Programming Reference, Chapter 9: Intel(R) Memory Protection |
| 12 | Extensions. | 16 | Extensions. |
| 13 | 17 | ||
| 14 | Note: Currently no hardware with MPX ISA is available but it is always | 18 | Note: As of December 2014, no hardware with MPX is available but it is |
| 15 | possible to use SDE (Intel(R) Software Development Emulator) instead, which | 19 | possible to use SDE (Intel(R) Software Development Emulator) instead, which |
| 16 | can be downloaded from | 20 | can be downloaded from |
| 17 | http://software.intel.com/en-us/articles/intel-software-development-emulator | 21 | http://software.intel.com/en-us/articles/intel-software-development-emulator |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 967dfe0ba85e..cc91e5e55d13 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
| @@ -248,10 +248,6 @@ config HAVE_INTEL_TXT | |||
| 248 | def_bool y | 248 | def_bool y |
| 249 | depends on INTEL_IOMMU && ACPI | 249 | depends on INTEL_IOMMU && ACPI |
| 250 | 250 | ||
| 251 | config X86_INTEL_MPX | ||
| 252 | def_bool y | ||
| 253 | depends on CPU_SUP_INTEL | ||
| 254 | |||
| 255 | config X86_32_SMP | 251 | config X86_32_SMP |
| 256 | def_bool y | 252 | def_bool y |
| 257 | depends on X86_32 && SMP | 253 | depends on X86_32 && SMP |
| @@ -1575,6 +1571,32 @@ config X86_SMAP | |||
| 1575 | 1571 | ||
| 1576 | If unsure, say Y. | 1572 | If unsure, say Y. |
| 1577 | 1573 | ||
| 1574 | config X86_INTEL_MPX | ||
| 1575 | prompt "Intel MPX (Memory Protection Extensions)" | ||
| 1576 | def_bool n | ||
| 1577 | depends on CPU_SUP_INTEL | ||
| 1578 | ---help--- | ||
| 1579 | MPX provides hardware features that can be used in | ||
| 1580 | conjunction with compiler-instrumented code to check | ||
| 1581 | memory references. It is designed to detect buffer | ||
| 1582 | overflow or underflow bugs. | ||
| 1583 | |||
| 1584 | This option enables running applications which are | ||
| 1585 | instrumented or otherwise use MPX. It does not use MPX | ||
| 1586 | itself inside the kernel or to protect the kernel | ||
| 1587 | against bad memory references. | ||
| 1588 | |||
| 1589 | Enabling this option will make the kernel larger: | ||
| 1590 | ~8k of kernel text and 36 bytes of data on a 64-bit | ||
| 1591 | defconfig. It adds a long to the 'mm_struct' which | ||
| 1592 | will increase the kernel memory overhead of each | ||
| 1593 | process and adds some branches to paths used during | ||
| 1594 | exec() and munmap(). | ||
| 1595 | |||
| 1596 | For details, see Documentation/x86/intel_mpx.txt | ||
| 1597 | |||
| 1598 | If unsure, say N. | ||
| 1599 | |||
| 1578 | config EFI | 1600 | config EFI |
| 1579 | bool "EFI runtime service support" | 1601 | bool "EFI runtime service support" |
| 1580 | depends on ACPI | 1602 | depends on ACPI |
