diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2018-04-12 19:22:47 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2018-05-19 13:49:43 -0400 |
commit | 92d44a42af81e850a038c38278ff4f434b2871df (patch) | |
tree | 28d02280bc3f6780c466adc64912e8db5239b4c6 | |
parent | 0d73c3f8e7f6ee2aab1bb350f60c180f5ae21a2c (diff) |
ARM: fix kill( ,SIGFPE) breakage
Commit 7771c6645700 ("signal/arm: Document conflicts with SI_USER and
SIGFPE") broke the siginfo structure for userspace triggered signals,
causing the strace testsuite to regress. Fix this by eliminating
the FPE_FIXME definition (which is at the root of the breakage) and
use FPE_FLTINV instead for the case where the hardware appears to be
reporting nonsense.
Fixes: 7771c6645700 ("signal/arm: Document conflicts with SI_USER and SIGFPE")
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
-rw-r--r-- | arch/arm/include/uapi/asm/siginfo.h | 13 | ||||
-rw-r--r-- | arch/arm/vfp/vfpmodule.c | 2 |
2 files changed, 1 insertions, 14 deletions
diff --git a/arch/arm/include/uapi/asm/siginfo.h b/arch/arm/include/uapi/asm/siginfo.h deleted file mode 100644 index d0513880be21..000000000000 --- a/arch/arm/include/uapi/asm/siginfo.h +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | #ifndef __ASM_SIGINFO_H | ||
2 | #define __ASM_SIGINFO_H | ||
3 | |||
4 | #include <asm-generic/siginfo.h> | ||
5 | |||
6 | /* | ||
7 | * SIGFPE si_codes | ||
8 | */ | ||
9 | #ifdef __KERNEL__ | ||
10 | #define FPE_FIXME 0 /* Broken dup of SI_USER */ | ||
11 | #endif /* __KERNEL__ */ | ||
12 | |||
13 | #endif | ||
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c index 4c375e11ae95..af4ee2cef2f9 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c | |||
@@ -257,7 +257,7 @@ static void vfp_raise_exceptions(u32 exceptions, u32 inst, u32 fpscr, struct pt_ | |||
257 | 257 | ||
258 | if (exceptions == VFP_EXCEPTION_ERROR) { | 258 | if (exceptions == VFP_EXCEPTION_ERROR) { |
259 | vfp_panic("unhandled bounce", inst); | 259 | vfp_panic("unhandled bounce", inst); |
260 | vfp_raise_sigfpe(FPE_FIXME, regs); | 260 | vfp_raise_sigfpe(FPE_FLTINV, regs); |
261 | return; | 261 | return; |
262 | } | 262 | } |
263 | 263 | ||