qemu/linux-user
Sam Bobroff 2635531f20 target-ppc, tcg: fix usermode segfault with pthread_create()
Programs run under qemu-ppc64 on an x86_64 host currently segfault
if they use pthread_create() due to the adjustment made to the NIP in
commit bd6fefe71c.

This patch changes cpu_loop() to set the NIP back to the
pre-incremented value before calling do_syscall(), which causes the
correct address to be used for the new thread and corrects the fault.

Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2017-02-22 11:28:28 +11:00
..
aarch64
alpha linux-user: Handle ERFKILL and EHWPOISON 2017-01-22 18:14:10 -08:00
arm
cris
host linux-user: Fix s390x safe-syscall for z900 2017-02-14 17:18:03 +01:00
hppa linux-user: define correct UTS machine name for hppa 2017-02-06 18:24:40 -08:00
i386
m68k linux-user: Update m68k syscall definitions to match Linux 4.6 2017-02-16 15:29:26 +01:00
microblaze
mips linux-user: Handle ERFKILL and EHWPOISON 2017-01-22 18:14:10 -08:00
mips64 linux-user: Handle ERFKILL and EHWPOISON 2017-01-22 18:14:10 -08:00
nios2 nios2: Add usermode binaries emulation 2017-01-24 13:10:35 -08:00
openrisc linux-user: Honor CLONE_SETTLS for openrisc 2017-02-14 08:14:59 +11:00
ppc
s390x
sh4 linux-user: Update sh4 syscall definitions to match Linux 4.8 2017-02-16 15:29:16 +01:00
sparc
sparc64
tilegx
unicore32
x86_64
elfload.c linux-user: Use correct types in load_symbols() 2017-02-16 15:29:30 +01:00
errno_defs.h linux-user: Handle ERFKILL and EHWPOISON 2017-01-22 18:14:10 -08:00
flat.h
flatload.c
ioctls.h linux-user: Add FICLONE and FICLONERANGE ioctls 2017-02-16 15:29:30 +01:00
linux_loop.h
linuxload.c
m68k-sim.c
main.c target-ppc, tcg: fix usermode segfault with pthread_create() 2017-02-22 11:28:28 +11:00
Makefile.objs
mmap.c linux-user: fix tcg/mmap test 2017-02-16 15:29:30 +01:00
qemu.h linux-user: Support stack-grows-up in elfload.c 2017-01-22 18:14:10 -08:00
safe-syscall.S
signal.c linux-user: fill target sigcontext struct accordingly 2017-02-16 15:29:30 +01:00
socket.h linux-user: Add HPPA socket.h definitions 2017-01-23 09:52:39 -08:00
strace.c linux-user: remove ifdef __USER_MISC 2017-02-14 17:18:03 +01:00
strace.list
syscall_defs.h linux-user: Add FICLONE and FICLONERANGE ioctls 2017-02-16 15:29:30 +01:00
syscall_types.h linux-user: Add FICLONE and FICLONERANGE ioctls 2017-02-16 15:29:30 +01:00
syscall.c linux-user: fix settime old value location 2017-02-16 15:29:30 +01:00
target_flat.h
trace-events
uaccess.c
uname.c
uname.h
vm86.c