• Dave Hansen's avatar
    x86/signals: Add build-time checks to the siginfo compat code · 02e8fda2
    Dave Hansen authored
    There were at least 3 features added to the __SI_FAULT area of the
    siginfo struct that did not make it to the compat siginfo:
    
    	1. The si_addr_lsb used in SIGBUS's sent for machine checks
    	2. The upper/lower bounds for MPX SIGSEGV faults
    	3. The protection key for pkey faults
    
    There was also some turmoil when I was attempting to add the pkey
    field because it needs to be a fixed size on 32 and 64-bit and
    not have any alignment constraints.
    
    This patch adds some compile-time checks to the compat code to
    make it harder to screw this up.  Basically, the checks are
    supposed to trip any time someone changes the siginfo structure.
    That sounds bad, but it's what we want.  If someone changes
    siginfo, we want them to also be _forced_ to go look at the
    compat code.
    
    The details are in the comments.
    Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Dave Hansen <dave@sr71.net>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: linux-edac@vger.kernel.org
    Link: http://lkml.kernel.org/r/20160608172534.C73DAFC3@viggo.jf.intel.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    02e8fda2
signal_compat.c 6.34 KB