Changes from take 7 / v22: * Add Thomas's reviewed-by * merge with tip/x86/fpu changes * Fix tiny spelling nit
Changes from take 6 / v21: * Address a bunch of Thomas's review comments. Changes from take 5 / v20: * Fix get_xsave_addr() to consult xstate_bv in anticipation of fixes to xsave code. * Bug fix for when an VMA being unmapped has neighbors which are bounds tables. * Rewrite unmapping code. I didn't do this lightly. It was not originally my own code, and I resisted changing it because it worked. But, I started bug chasing and decided it was unmaintainable. The rewrite ended up removing about 20% of the unmapping code and made it much simpler. Changes from take 4 / v19: * Do not pass a task_struct around when we are really just going to operate on current Changes from take 3 / v18 (all minor): * use DECLARE_EVENT_CLASS()/DEFINE_EVENT() for the ranged tracepoints to save 10 lines of code. Changes from take 2 / v17 (all minor): * fix a couple of whitespace borkages caught by checkpatch, and a spelling error or two. * replace printk with pr_info() for boot disable * change trace print format for address intervals * fix up variable name in tsk_get_xsave_addr() comment * remove tsk_get_xsave_field() GPL export * fix up Qiaowei's From: -- Hi x86 maintainers, There are a few basic things going on here: 1. Make FPU/xsave code preempt safe and work properly 2. Add trace points to make kernel and app debugging easier 3. Add a boot-time disable for mpx 4. Rewrite the unmapping code. 5. Support 32-bit binaries to run on 64-bit kernels This set is also available against tip/x86/fpu (8c05f05edb) in git: git://git.kernel.org/pub/scm/linux/kernel/git/daveh/x86-mpx.git mpx-v23 Dave Hansen (19): x86, mpx, xsave: Fix up bad get_xsave_addr() assumptions x86, fpu: Wrap get_xsave_addr() to make it safer x86, mpx: Use new get_xsave_field_ptr() x86, mpx: Cleanup: Do not pass task around when unnecessary x86, mpx: remove redundant MPX_BNDCFG_ADDR_MASK x86, mpx: Restrict mmap size check to bounds tables x86, mpx: boot-time disable x86, mpx: trace #BR exceptions x86, mpx: trace entry to bounds exception paths x86, mpx: Trace the attempts to find bounds tables x86, mpx: trace allocation of new bounds tables x86: make is_64bit_mm() widely available 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 32-bit binaries on 64-bit kernel x86, mpx: rewrite unmap code x86, mpx: do not count MPX VMAs as neighbors when unmapping x86, mpx: allow mixed binaries again Documentation/kernel-parameters.txt | 4 + arch/x86/include/asm/fpu/xstate.h | 1 + arch/x86/include/asm/mmu_context.h | 13 + arch/x86/include/asm/mpx.h | 74 +++--- arch/x86/include/asm/processor.h | 12 +- arch/x86/include/asm/trace/mpx.h | 131 ++++++++++ arch/x86/kernel/cpu/common.c | 16 ++ arch/x86/kernel/fpu/xstate.c | 78 +++++- arch/x86/kernel/traps.c | 18 +- arch/x86/kernel/uprobes.c | 10 +- arch/x86/mm/mpx.c | 508 ++++++++++++++++++++++-------------- kernel/sys.c | 8 +- 12 files changed, 606 insertions(+), 267 deletions(-) create mode 100644 arch/x86/include/asm/trace/mpx.h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/