This is 3.20 material. I'm hoping to get some comments early
in case folks have some issues with the way it's being done.
--
The MPX hardware structures differ in layout in 32 and 64-bit
mode. A 32-bit binary running on a 64-bit kernel needs the
32-bit structures, so we need code which switches between
the two modes.
The first patch is just a documentation update. The next 5
patches are really just prepwork. The meat is in the last 3.
x86: make is_64bit_mm() widely available
x86: make __VIRTUAL_MASK safe to use on 32 bit
x86, mpx: we do not allocate the bounds directory
x86, mpx: remove redundant MPX_BNDCFG_ADDR_MASK
x86, mpx: Add temporary variable to reduce masking
x86, mpx: new directory entry to addr helper
x86, mpx: do 32-bit-only cmpxchg for 32-bit apps
x86, mpx: support 32bit binaries on 64bit kernel
Documentation/x86/intel_mpx.txt | 12 +++-
arch/x86/include/asm/mmu_context.h | 13 +++++
arch/x86/include/asm/mpx.h | 2
arch/x86/include/asm/page_types.h | 8 +++
arch/x86/kernel/uprobes.c | 10 ---
arch/x86/mm/mpx.c | 93 ++++++++++++++++++++++++++++++-------
6 files changed, 107 insertions(+), 31 deletions(-)