[PATCH 0/3] user: recursive signal delivery fix and test

Nicholas Piggin posted 3 patches 22 hours ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260321135624.581398-1-npiggin@gmail.com
Maintainers: Warner Losh <imp@bsdimp.com>, Kyle Evans <kevans@freebsd.org>, Laurent Vivier <laurent@vivier.eu>, Pierrick Bouvier <pierrick.bouvier@linaro.org>, "Alex Bennée" <alex.bennee@linaro.org>
bsd-user/signal.c            |  10 +-
linux-user/signal.c          |  36 +++---
tests/tcg/multiarch/badsig.c | 226 +++++++++++++++++++++++++++++++++++
3 files changed, 252 insertions(+), 20 deletions(-)
create mode 100644 tests/tcg/multiarch/badsig.c
[PATCH 0/3] user: recursive signal delivery fix and test
Posted by Nicholas Piggin 22 hours ago
I found this recursive delivery problem when testing new riscv vector
state support patches (plus a minor lock user balance bug).

This or similar type of issue was fixed with 8bd3773cce1 but I couldn't
see exactly what scenario that was addressing. Is there any other way a
signal can be generated during handle_pending_signal()? The SIGTTIN
case, perhaps?

Thanks,
Nick

Nicholas Piggin (3):
  linux-user: sigaltstack lock_user_struct missing unlock
  bsd-user, linux-user: signal: recursive signal delivery fix
  tests/tcg: add recursive signal delivery tests

 bsd-user/signal.c            |  10 +-
 linux-user/signal.c          |  36 +++---
 tests/tcg/multiarch/badsig.c | 226 +++++++++++++++++++++++++++++++++++
 3 files changed, 252 insertions(+), 20 deletions(-)
 create mode 100644 tests/tcg/multiarch/badsig.c

-- 
2.51.0