[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 5bfce0: linux-user: Make sigaltstack stacks p
From: |
Peter Maydell |
Subject: |
[Qemu-commits] [qemu/qemu] 5bfce0: linux-user: Make sigaltstack stacks per-thread |
Date: |
Mon, 29 Jul 2019 02:13:59 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 5bfce0b74fbd5d53089bb866919d685c47edad9e
https://github.com/qemu/qemu/commit/5bfce0b74fbd5d53089bb866919d685c47edad9e
Author: Peter Maydell <address@hidden>
Date: 2019-07-26 (Fri, 26 Jul 2019)
Changed paths:
M linux-user/hppa/signal.c
M linux-user/main.c
M linux-user/qemu.h
M linux-user/signal-common.h
M linux-user/signal.c
Log Message:
-----------
linux-user: Make sigaltstack stacks per-thread
The alternate signal stack set up by the sigaltstack syscall is
supposed to be per-thread. We were incorrectly implementing it as
process-wide. This causes problems for guest binaries that rely on
this. Notably the Go runtime does, and so we were seeing crashes
caused by races where two guest threads might incorrectly both
execute on the same stack simultaneously.
Replace the global target_sigaltstack_used with a field
sigaltstack_used in the TaskState, and make all the references to the
old global instead get a pointer to the TaskState and use the field.
Fixes: https://bugs.launchpad.net/qemu/+bug/1696773
Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Tested-by: Laurent Vivier <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Laurent Vivier <address@hidden>
Commit: 0c6f3e948cbeb4f4f4a335d80293aa3736eeba2f
https://github.com/qemu/qemu/commit/0c6f3e948cbeb4f4f4a335d80293aa3736eeba2f
Author: Peter Maydell <address@hidden>
Date: 2019-07-26 (Fri, 26 Jul 2019)
Changed paths:
M linux-user/hppa/signal.c
M linux-user/main.c
M linux-user/qemu.h
M linux-user/signal-common.h
M linux-user/signal.c
Log Message:
-----------
Merge remote-tracking branch
'remotes/vivier2/tags/linux-user-for-4.1-pull-request' into staging
Fix multi-threaded go runtime crash
# gpg: Signature made Fri 26 Jul 2019 18:34:00 BST
# gpg: using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C
# gpg: issuer "address@hidden"
# gpg: Good signature from "Laurent Vivier <address@hidden>" [full]
# gpg: aka "Laurent Vivier <address@hidden>" [full]
# gpg: aka "Laurent Vivier (Red Hat) <address@hidden>" [full]
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C
* remotes/vivier2/tags/linux-user-for-4.1-pull-request:
linux-user: Make sigaltstack stacks per-thread
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/fff3159900d2...0c6f3e948cbe
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 5bfce0: linux-user: Make sigaltstack stacks per-thread,
Peter Maydell <=