* [PATCH 0/2] linux-user: Let sigaction query SIGKILL/SIGSTOP @ 2021-06-01 14:55 Ilya Leoshkevich 2021-06-01 14:55 ` [PATCH 1/2] " Ilya Leoshkevich 2021-06-01 14:56 ` [PATCH 2/2] tests/tcg/linux-test: Check that sigaction can " Ilya Leoshkevich 0 siblings, 2 replies; 7+ messages in thread From: Ilya Leoshkevich @ 2021-06-01 14:55 UTC (permalink / raw) To: Alex Bennée, Laurent Vivier Cc: Christian Borntraeger, qemu-devel, Ilya Leoshkevich valgrind fails to start under linux-user, one of the reasons being that it tries to query all the sigactions, which qemu (unlike the real kernel) doesn't allow for SIGKILL/SIGSTOP. Patch 1 lifts this restriction, patch 2 adds a test. Ilya Leoshkevich (2): linux-user: Let sigaction query SIGKILL/SIGSTOP tests/tcg/linux-test: Check that sigaction can query SIGKILL/SIGSTOP linux-user/signal.c | 6 +++++- tests/tcg/multiarch/linux-test.c | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) -- 2.31.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] linux-user: Let sigaction query SIGKILL/SIGSTOP 2021-06-01 14:55 [PATCH 0/2] linux-user: Let sigaction query SIGKILL/SIGSTOP Ilya Leoshkevich @ 2021-06-01 14:55 ` Ilya Leoshkevich 2021-06-20 14:19 ` Laurent Vivier 2021-06-20 14:21 ` Laurent Vivier 2021-06-01 14:56 ` [PATCH 2/2] tests/tcg/linux-test: Check that sigaction can " Ilya Leoshkevich 1 sibling, 2 replies; 7+ messages in thread From: Ilya Leoshkevich @ 2021-06-01 14:55 UTC (permalink / raw) To: Alex Bennée, Laurent Vivier Cc: Christian Borntraeger, qemu-devel, Ilya Leoshkevich The kernel allows doing this, so let's allow this in qemu as well. Valgrind relies on this. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> --- linux-user/signal.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/linux-user/signal.c b/linux-user/signal.c index 9016896dcd..bc3431708f 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -851,7 +851,11 @@ int do_sigaction(int sig, const struct target_sigaction *act, trace_signal_do_sigaction_guest(sig, TARGET_NSIG); - if (sig < 1 || sig > TARGET_NSIG || sig == TARGET_SIGKILL || sig == TARGET_SIGSTOP) { + if (sig < 1 || sig > TARGET_NSIG) { + return -TARGET_EINVAL; + } + + if (act && (sig == TARGET_SIGKILL || sig == TARGET_SIGSTOP)) { return -TARGET_EINVAL; } -- 2.31.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] linux-user: Let sigaction query SIGKILL/SIGSTOP 2021-06-01 14:55 ` [PATCH 1/2] " Ilya Leoshkevich @ 2021-06-20 14:19 ` Laurent Vivier 2021-06-20 14:21 ` Laurent Vivier 1 sibling, 0 replies; 7+ messages in thread From: Laurent Vivier @ 2021-06-20 14:19 UTC (permalink / raw) To: Ilya Leoshkevich, Alex Bennée; +Cc: Christian Borntraeger, qemu-devel Le 01/06/2021 à 16:55, Ilya Leoshkevich a écrit : > The kernel allows doing this, so let's allow this in qemu as well. > Valgrind relies on this. > > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > linux-user/signal.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/linux-user/signal.c b/linux-user/signal.c > index 9016896dcd..bc3431708f 100644 > --- a/linux-user/signal.c > +++ b/linux-user/signal.c > @@ -851,7 +851,11 @@ int do_sigaction(int sig, const struct target_sigaction *act, > > trace_signal_do_sigaction_guest(sig, TARGET_NSIG); > > - if (sig < 1 || sig > TARGET_NSIG || sig == TARGET_SIGKILL || sig == TARGET_SIGSTOP) { > + if (sig < 1 || sig > TARGET_NSIG) { > + return -TARGET_EINVAL; > + } > + > + if (act && (sig == TARGET_SIGKILL || sig == TARGET_SIGSTOP)) { > return -TARGET_EINVAL; > } > > Reviewed-by: Laurent Vivier <laurent@vivier.eu> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] linux-user: Let sigaction query SIGKILL/SIGSTOP 2021-06-01 14:55 ` [PATCH 1/2] " Ilya Leoshkevich 2021-06-20 14:19 ` Laurent Vivier @ 2021-06-20 14:21 ` Laurent Vivier 1 sibling, 0 replies; 7+ messages in thread From: Laurent Vivier @ 2021-06-20 14:21 UTC (permalink / raw) To: Ilya Leoshkevich, Alex Bennée; +Cc: Christian Borntraeger, qemu-devel Le 01/06/2021 à 16:55, Ilya Leoshkevich a écrit : > The kernel allows doing this, so let's allow this in qemu as well. > Valgrind relies on this. > > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > linux-user/signal.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/linux-user/signal.c b/linux-user/signal.c > index 9016896dcd..bc3431708f 100644 > --- a/linux-user/signal.c > +++ b/linux-user/signal.c > @@ -851,7 +851,11 @@ int do_sigaction(int sig, const struct target_sigaction *act, > > trace_signal_do_sigaction_guest(sig, TARGET_NSIG); > > - if (sig < 1 || sig > TARGET_NSIG || sig == TARGET_SIGKILL || sig == TARGET_SIGSTOP) { > + if (sig < 1 || sig > TARGET_NSIG) { > + return -TARGET_EINVAL; > + } > + > + if (act && (sig == TARGET_SIGKILL || sig == TARGET_SIGSTOP)) { > return -TARGET_EINVAL; > } > > Applied to my linux-user-for-6.1 branch. Thanks, Laurent ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] tests/tcg/linux-test: Check that sigaction can query SIGKILL/SIGSTOP 2021-06-01 14:55 [PATCH 0/2] linux-user: Let sigaction query SIGKILL/SIGSTOP Ilya Leoshkevich 2021-06-01 14:55 ` [PATCH 1/2] " Ilya Leoshkevich @ 2021-06-01 14:56 ` Ilya Leoshkevich 2021-06-20 14:26 ` Laurent Vivier 2021-06-20 14:27 ` Laurent Vivier 1 sibling, 2 replies; 7+ messages in thread From: Ilya Leoshkevich @ 2021-06-01 14:56 UTC (permalink / raw) To: Alex Bennée, Laurent Vivier Cc: Christian Borntraeger, qemu-devel, Ilya Leoshkevich Verify that querying is allowed, but making changes isn't. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> --- tests/tcg/multiarch/linux-test.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/tcg/multiarch/linux-test.c b/tests/tcg/multiarch/linux-test.c index ce033c21c7..cd9d8159bc 100644 --- a/tests/tcg/multiarch/linux-test.c +++ b/tests/tcg/multiarch/linux-test.c @@ -496,6 +496,15 @@ static void test_signal(void) sigemptyset(&act.sa_mask); act.sa_flags = 0; chk_error(sigaction(SIGSEGV, &act, NULL)); + + if (sigaction(SIGKILL, &act, NULL) == 0) { + error("sigaction(SIGKILL, &act, NULL) must not succeed"); + } + if (sigaction(SIGSTOP, &act, NULL) == 0) { + error("sigaction(SIGSTOP, &act, NULL) must not succeed"); + } + chk_error(sigaction(SIGKILL, NULL, &act)); + chk_error(sigaction(SIGSTOP, NULL, &act)); } #define SHM_SIZE 32768 -- 2.31.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] tests/tcg/linux-test: Check that sigaction can query SIGKILL/SIGSTOP 2021-06-01 14:56 ` [PATCH 2/2] tests/tcg/linux-test: Check that sigaction can " Ilya Leoshkevich @ 2021-06-20 14:26 ` Laurent Vivier 2021-06-20 14:27 ` Laurent Vivier 1 sibling, 0 replies; 7+ messages in thread From: Laurent Vivier @ 2021-06-20 14:26 UTC (permalink / raw) To: Ilya Leoshkevich, Alex Bennée; +Cc: Christian Borntraeger, qemu-devel Le 01/06/2021 à 16:56, Ilya Leoshkevich a écrit : > Verify that querying is allowed, but making changes isn't. > > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > tests/tcg/multiarch/linux-test.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/tests/tcg/multiarch/linux-test.c b/tests/tcg/multiarch/linux-test.c > index ce033c21c7..cd9d8159bc 100644 > --- a/tests/tcg/multiarch/linux-test.c > +++ b/tests/tcg/multiarch/linux-test.c > @@ -496,6 +496,15 @@ static void test_signal(void) > sigemptyset(&act.sa_mask); > act.sa_flags = 0; > chk_error(sigaction(SIGSEGV, &act, NULL)); > + > + if (sigaction(SIGKILL, &act, NULL) == 0) { > + error("sigaction(SIGKILL, &act, NULL) must not succeed"); > + } > + if (sigaction(SIGSTOP, &act, NULL) == 0) { > + error("sigaction(SIGSTOP, &act, NULL) must not succeed"); > + } > + chk_error(sigaction(SIGKILL, NULL, &act)); > + chk_error(sigaction(SIGSTOP, NULL, &act)); > } > > #define SHM_SIZE 32768 > Reviewed-by: Laurent Vivier <laurent@vivier.eu> Alex, I will merge this via linux-user, is it ok for you? Thanks, Laurent ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] tests/tcg/linux-test: Check that sigaction can query SIGKILL/SIGSTOP 2021-06-01 14:56 ` [PATCH 2/2] tests/tcg/linux-test: Check that sigaction can " Ilya Leoshkevich 2021-06-20 14:26 ` Laurent Vivier @ 2021-06-20 14:27 ` Laurent Vivier 1 sibling, 0 replies; 7+ messages in thread From: Laurent Vivier @ 2021-06-20 14:27 UTC (permalink / raw) To: Ilya Leoshkevich, Alex Bennée; +Cc: Christian Borntraeger, qemu-devel Le 01/06/2021 à 16:56, Ilya Leoshkevich a écrit : > Verify that querying is allowed, but making changes isn't. > > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > tests/tcg/multiarch/linux-test.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/tests/tcg/multiarch/linux-test.c b/tests/tcg/multiarch/linux-test.c > index ce033c21c7..cd9d8159bc 100644 > --- a/tests/tcg/multiarch/linux-test.c > +++ b/tests/tcg/multiarch/linux-test.c > @@ -496,6 +496,15 @@ static void test_signal(void) > sigemptyset(&act.sa_mask); > act.sa_flags = 0; > chk_error(sigaction(SIGSEGV, &act, NULL)); > + > + if (sigaction(SIGKILL, &act, NULL) == 0) { > + error("sigaction(SIGKILL, &act, NULL) must not succeed"); > + } > + if (sigaction(SIGSTOP, &act, NULL) == 0) { > + error("sigaction(SIGSTOP, &act, NULL) must not succeed"); > + } > + chk_error(sigaction(SIGKILL, NULL, &act)); > + chk_error(sigaction(SIGSTOP, NULL, &act)); > } > > #define SHM_SIZE 32768 > Applied to my linux-user-for-6.1 branch. Thanks, Laurent ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-06-20 14:28 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-06-01 14:55 [PATCH 0/2] linux-user: Let sigaction query SIGKILL/SIGSTOP Ilya Leoshkevich 2021-06-01 14:55 ` [PATCH 1/2] " Ilya Leoshkevich 2021-06-20 14:19 ` Laurent Vivier 2021-06-20 14:21 ` Laurent Vivier 2021-06-01 14:56 ` [PATCH 2/2] tests/tcg/linux-test: Check that sigaction can " Ilya Leoshkevich 2021-06-20 14:26 ` Laurent Vivier 2021-06-20 14:27 ` Laurent Vivier
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.