diff options
author | Dave Hansen <dave.hansen@linux.intel.com> | 2015-06-07 11:37:03 -0700 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-06-09 12:24:31 +0200 |
commit | e7126cf5f10aef1555cb99eddb7efff41bdf9566 (patch) | |
tree | fc24752c5b4a2202483c8e594d5c37ec948b9538 /arch/x86/kernel/traps.c | |
parent | 8c3641e957a948f41f0174290096ed7a3b95e703 (diff) | |
download | linux-stable-e7126cf5f10aef1555cb99eddb7efff41bdf9566.tar.gz linux-stable-e7126cf5f10aef1555cb99eddb7efff41bdf9566.tar.bz2 linux-stable-e7126cf5f10aef1555cb99eddb7efff41bdf9566.zip |
x86/mpx: Trace #BR exceptions
This is the first in a series of MPX tracing patches.
I've found these extremely useful in the process of
debugging applications and the kernel code itself.
This exception hooks in to the bounds (#BR) exception
very early and allows capturing the key registers which
would influence how the exception is handled.
Note that bndcfgu/bndstatus are technically still
64-bit registers even in 32-bit mode.
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave@sr71.net>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20150607183703.5FE2619A@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kernel/traps.c')
-rw-r--r-- | arch/x86/kernel/traps.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index cffff669be3f..36cb15b7b367 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c @@ -60,6 +60,7 @@ #include <asm/mach_traps.h> #include <asm/alternative.h> #include <asm/fpu/xstate.h> +#include <asm/trace/mpx.h> #include <asm/mpx.h> #ifdef CONFIG_X86_64 @@ -399,6 +400,7 @@ dotraplinkage void do_bounds(struct pt_regs *regs, long error_code) if (!bndcsr) goto exit_trap; + trace_bounds_exception_mpx(bndcsr); /* * The error code field of the BNDSTATUS register communicates status * information of a bound range exception #BR or operation involving |