[PATCH 1/3] signal: Add FPE_FLTUNK si_code for undiagnosable fp exceptions

Dave Martin Dave.Martin at arm.com
Thu Feb 22 05:13:35 PST 2018


On Thu, Feb 22, 2018 at 12:14:17PM +0000, James Morse wrote:
> Hi Dave,
> 
> On 21/02/18 16:02, Dave Martin wrote:
> > Some architectures cannot always report accurately what kind of
> > floating-point exception triggered a floating-point exception trap.
> > 
> > This can occur with fp exceptions occuring on lanes in a vector
> 
> (Nit: occurring)
> 
> > instruction on arm64 for example.
> > 
> > Rather than have every architecture come up with its own way of
> > descrbing such a condition, this patch adds a common FPE_FLTUNK do
> 
> (Nits: describing; 'to report')
> 
> > report that an fp exception caused a trap but we cannot be certain

Hmmm, this wasn't my best effort...

> > which kind of fp exception it was.
> 
> 
> > diff --git a/include/uapi/asm-generic/siginfo.h b/include/uapi/asm-generic/siginfo.h
> > index 85dc965..10304de 100644
> > --- a/include/uapi/asm-generic/siginfo.h
> > +++ b/include/uapi/asm-generic/siginfo.h
> > @@ -229,7 +229,8 @@ typedef struct siginfo {
> >  # define __FPE_INVASC	12	/* invalid ASCII digit */
> >  # define __FPE_INVDEC	13	/* invalid decimal digit */
> >  #endif
> > -#define NSIGFPE		13
> > +#define FPE_FLTUNK	14	/* undiagnosed floating-point exception */
> > +#define NSIGFPE		14
> 
> It looks like x86's compat relies on this value not changing:
> | arch/x86/kernel/signal_compat.c:        BUILD_BUG_ON(NSIGFPE  != 13);
> | include/uapi/asm-generic/siginfo.h:#define NSIGFPE              13
> 
> (from v4.16-rc2)

Hmmm, that's embarrassing -- thanks for spotting!

I think we can justifiably bump the number there, since x86 won't use
FPT_FLTUNK (for now, perhaps for ever) and anyway it doesn't add any new
information to siginfo.

I'll respin with these changes.

Cheers
---Dave



More information about the linux-arm-kernel mailing list