* Dave Hansen <d...@sr71.net> wrote: > Sending this out early so folks can have a look. I haven't let > it run through a full set of tests, so buyer beware, but it would > have a hard time hurting anything other than the already-broken > 32-bit compat signal code. > > --- > > From: Dave Hansen <dave.han...@linux.intel.com> > > The 32-bit siginfo is a different binary format than the 64-bit > one. So, when running 32-bit binaries on 64-bit kernels, we have > to convert the kernel's 64-bit version to a 32-bit version that > userspace can grok. > > We've added a few features to siginfo over the past few years and > neglected to add them to arch/x86/kernel/signal_compat.c: > > 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 > > I caught this with some protection keys unit tests and realized > it affected a few more features.
Hm, while fixing this, could we please also add individual unit tests to tools/testing/selftests/x86/, and also structure the code in a fashion or add a comment or so to make sure future extensions add both a compat handler and a unit test as well? I.e. perhaps do a (build time) fixed-size check of siginfo structure in the compat code, and break the build if that check has not been updated? Or something like that. Thanks, Ingo