xemu/linux-user
Peter Maydell babe6d5c88 linux-user/arm: Use force_sig() to deliver fpa11 emulation SIGFPE
In the Arm target code, when the fpa11 emulation code tells us we
need to send the guest a SIGFPE, we do this with queue_signal(), but
we are using the wrong si_type, and we aren't setting the _sifields
union members corresponding to either the si_type we are using or the
si_type we should be using.

As the existing comment notes, the kernel code for this calls the old
send_sig() function to deliver the signal.  This eventually results
in the kernel's signal handling code fabricating a siginfo_t with a
SI_KERNEL code and a zero pid and uid.  For QEMU this means we need
to use QEMU_SI_KILL.  We already have a function for that:
force_sig() sets up the whole target_siginfo_t the way we need it.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20210813131809.28655-4-peter.maydell@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2021-09-23 14:42:55 +02:00
..
aarch64 linux-user/aarch64: Set siginfo_t addr field for SIGTRAP signals 2021-09-23 14:42:55 +02:00
alpha linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
arm linux-user/arm: Use force_sig() to deliver fpa11 emulation SIGFPE 2021-09-23 14:42:55 +02:00
cris linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
generic linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
hexagon linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
host linux-user/: fix some comment spelling errors 2020-09-17 20:39:22 +02:00
hppa linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
i386 linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
m68k linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
microblaze linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
mips linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
mips64 linux-user: update syscall.tbl to Linux v5.13 2021-07-13 13:59:59 +02:00
nios2 linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
openrisc linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
ppc linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
riscv linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
s390x linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
sh4 linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
sparc linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
x86_64 linux-user: update syscall.tbl to Linux v5.13 2021-07-13 13:59:59 +02:00
xtensa linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
cpu_loop-common.h cpu: Replace ENV_GET_CPU with env_cpu 2019-06-10 07:03:34 -07:00
elfload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
errnos.c.inc linux-user: Simplify host <-> target errno conversion using macros 2021-07-12 21:53:35 +02:00
exit.c linux-user: Don't include gdbstub.h in qemu.h 2021-09-13 20:35:45 +02:00
fd-trans.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
fd-trans.h fd-trans: Fix race condition on reallocation of the translation table. 2021-07-12 21:54:46 +02:00
flat.h linux-user/: fix some comment spelling errors 2020-09-17 20:39:22 +02:00
flatload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
ioctls.h linux-user: Conditionalize TUNSETVNETLE 2021-01-07 05:09:06 -10:00
linux_loop.h linux-user: Add loop control ioctls 2016-07-19 15:22:33 +03:00
linuxload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
loader.h linux-user: Split loader-related prototypes into loader.h 2021-09-13 20:35:44 +02:00
main.c Pull request linux-user 20210916 2021-09-16 21:09:18 +01:00
meson.build linux-user/sparc: Merge sparc64/ into sparc/ 2021-05-15 21:43:23 +02:00
mmap.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
qemu.h linux-user: Drop unneeded includes from qemu.h 2021-09-13 20:35:45 +02:00
safe-syscall.h linux-user: Split safe-syscall macro into its own header 2021-09-13 20:35:45 +02:00
safe-syscall.S linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
semihost.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
signal-common.h linux-user: Split signal-related prototypes into signal-common.h 2021-09-13 20:35:44 +02:00
signal.c linux-user: Don't include gdbstub.h in qemu.h 2021-09-13 20:35:45 +02:00
socket.h Supply missing header guards 2019-06-12 13:20:21 +02:00
strace.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
strace.h linux-user: Split strace prototypes into strace.h 2021-09-13 20:35:44 +02:00
strace.list linux-user: Add copy_file_range to strace.list 2021-05-18 07:09:58 +02:00
syscall_defs.h linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
syscall_types.h linux-user: Add support for btrfs ioctls used to scrub a filesystem 2020-09-03 01:09:35 +02:00
syscall.c linux-user: Check lock_user result for ip_mreq_source sockopts 2021-09-16 17:04:21 +02:00
target_flat.h Supply missing header guards 2019-06-12 13:20:21 +02:00
trace-events linux-user/trace-events: fix minor typo in format string 2021-06-17 16:09:11 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
uaccess.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
user-internals.h linux-user: Drop unneeded includes from qemu.h 2021-09-13 20:35:45 +02:00
user-mmap.h linux-user: Split mmap prototypes into user-mmap.h 2021-09-13 20:35:45 +02:00
vm86.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00