* 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

Reply via email to