linux/arch/metag/kernel
Eric W. Biederman b80328be53 signal/metag: Document a conflict with SI_USER with SIGFPE
Setting si_code to 0 results in a userspace seeing an si_code of 0.
This is the same si_code as SI_USER.  Posix and common sense requires
that SI_USER not be a signal specific si_code.  As such this use of 0
for the si_code is a pretty horribly broken ABI.

Further use of si_code == 0 guaranteed that copy_siginfo_to_user saw a
value of __SI_KILL and now sees a value of SIL_KILL with the result
hat uid and pid fields are copied and which might copying the si_addr
field by accident but certainly not by design.  Making this a very
flakey implementation.

Utilizing FPE_FIXME siginfo_layout will now return SIL_FAULT and the
appropriate fields will reliably be copied.

Possible ABI fixes includee:
  - Send the signal without siginfo
  - Don't generate a signal
  - Possibly assign and use an appropriate si_code
  - Don't handle cases which can't happen

Cc: James Hogan <james.hogan@imgtec.com>
Cc: linux-metag@vger.kernel.org
Ref: ac919f0883 ("metag: Traps")
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
2018-01-12 14:21:03 -06:00
..
perf cpu/hotplug: Cleanup state names 2016-12-25 10:47:44 +01:00
.gitignore
asm-offsets.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cachepart.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
clock.c metag: log core and timer frequencies from arch code 2013-06-13 12:55:27 +01:00
core_reg.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
da.c metag: export _metag_da_present and cpu_2_hwthread_id 2013-03-27 14:37:52 +00:00
devtree.c metag: use common of_flat_dt_match_machine 2013-10-09 20:03:57 -05:00
dma.c treewide: Constify most dma_map_ops structures 2017-01-24 12:23:35 -05:00
ftrace_stub.S metag: ftrace: Remove check of obsolete variable function_trace_stop 2014-07-18 13:58:09 -04:00
ftrace.c metag: ftrace: remove the misleading comment for ftrace_dyn_arch_init 2016-04-29 22:37:51 +01:00
head.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
irq.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kick.c metag: kick: add missing irq_enter/exit to kick_handler() 2013-07-02 14:12:08 +01:00
machines.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
metag_ksyms.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
module.c module: use a structure to encapsulate layout. 2015-12-04 22:46:25 +01:00
perf_callchain.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
process.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ptrace.c Merge branch 'regset' (PTRACE_SETREGSET data leakage) 2017-03-29 08:55:25 -07:00
setup.c metag: Remove unnecessary of_platform_populate with default match table 2016-06-23 15:00:26 -05:00
signal.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smp.c metag: Adjust system_state check 2017-05-23 10:01:35 +02:00
stacktrace.c linux/kernel.h: Add ALIGN_DOWN macro 2017-04-21 20:30:44 +08:00
sys_metag.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tbiunexp.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tcm.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
time.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
topology.c metag: topology: export 'cpu_core_map' 2013-12-19 11:36:13 +00:00
traps.c signal/metag: Document a conflict with SI_USER with SIGFPE 2018-01-12 14:21:03 -06:00
user_gateway.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vmlinux.lds.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00