summaryrefslogtreecommitdiffstats
path: root/linux-user/syscall.c
diff options
context:
space:
mode:
authorPeter Maydell2016-07-28 17:44:46 +0200
committerRiku Voipio2016-09-21 21:01:28 +0200
commit9d2803f720d5b71937c0f564bb2c16d8f5e18c8c (patch)
tree8535b9a62b299d094a601a4e84e5c7833a2a0244 /linux-user/syscall.c
parentlinux-user: Recheck for pending synchronous signals too (diff)
downloadqemu-9d2803f720d5b71937c0f564bb2c16d8f5e18c8c.tar.gz
qemu-9d2803f720d5b71937c0f564bb2c16d8f5e18c8c.tar.xz
qemu-9d2803f720d5b71937c0f564bb2c16d8f5e18c8c.zip
linux-user: Pass si_type information to queue_signal() explicitly
Instead of assuming in queue_signal() that all callers are passing a siginfo structure which uses the _sifields._sigfault part of the union (and thus a si_type of QEMU_SI_FAULT), make callers pass the si_type they require in as an argument. [RV adjusted to apply] Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Diffstat (limited to 'linux-user/syscall.c')
-rw-r--r--linux-user/syscall.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 85699f9f31..27ad6a2a6c 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -10577,7 +10577,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
info.si_code = si_code;
info._sifields._sigfault._addr
= ((CPUArchState *)cpu_env)->pc;
- queue_signal((CPUArchState *)cpu_env, info.si_signo, &info);
+ queue_signal((CPUArchState *)cpu_env, info.si_signo,
+ QEMU_SI_FAULT, &info);
}
}
break;
@@ -11665,7 +11666,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
info.si_errno = 0;
info.si_code = TARGET_SEGV_MAPERR;
info._sifields._sigfault._addr = arg6;
- queue_signal((CPUArchState *)cpu_env, info.si_signo, &info);
+ queue_signal((CPUArchState *)cpu_env, info.si_signo,
+ QEMU_SI_FAULT, &info);
ret = 0xdeadbeef;
}