mbox series

[0/2] Fix SIGILL psw.addr reporting

Message ID 20210521030146.2831663-1-iii@linux.ibm.com (mailing list archive)
Headers show
Series Fix SIGILL psw.addr reporting | expand

Message

Ilya Leoshkevich May 21, 2021, 3:01 a.m. UTC
qemu-s390x puts a wrong value into SIGILL's siginfo_t's psw.addr: it
should be a pointer to the instruction following the illegal
instruction, but at the moment it is a pointer to the illegal
instruction itself. This breaks OpenJDK, which relies on this value.

Patch 1 fixes the issue, patch 2 adds a test.

Ilya Leoshkevich (2):
  target/s390x: Fix SIGILL psw.addr reporting
  tests/tcg/s390x: Test SIGILL handling

 linux-user/s390x/cpu_loop.c     |  6 ++-
 target/s390x/excp_helper.c      | 69 ++++++++++++++++++---------------
 target/s390x/internal.h         |  1 +
 tests/tcg/s390x/Makefile.target |  1 +
 tests/tcg/s390x/sigill.c        | 41 ++++++++++++++++++++
 5 files changed, 85 insertions(+), 33 deletions(-)
 create mode 100644 tests/tcg/s390x/sigill.c

Comments

no-reply@patchew.org May 21, 2021, 3:09 a.m. UTC | #1
Patchew URL: https://patchew.org/QEMU/20210521030146.2831663-1-iii@linux.ibm.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20210521030146.2831663-1-iii@linux.ibm.com
Subject: [PATCH 0/2] Fix SIGILL psw.addr reporting

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]         patchew/20210521030146.2831663-1-iii@linux.ibm.com -> patchew/20210521030146.2831663-1-iii@linux.ibm.com
Switched to a new branch 'test'
069d02b tests/tcg/s390x: Test SIGILL handling
a869643 target/s390x: Fix SIGILL psw.addr reporting

=== OUTPUT BEGIN ===
1/2 Checking commit a86964364d4d (target/s390x: Fix SIGILL psw.addr reporting)
2/2 Checking commit 069d02b0edf2 (tests/tcg/s390x: Test SIGILL handling)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#26: 
new file mode 100644

ERROR: externs should be avoided in .c files
#37: FILE: tests/tcg/s390x/sigill.c:7:
+extern char expected_si_addr[];

ERROR: externs should be avoided in .c files
#38: FILE: tests/tcg/s390x/sigill.c:8:
+extern char expected_psw_addr[];

total: 2 errors, 1 warnings, 45 lines checked

Patch 2/2 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20210521030146.2831663-1-iii@linux.ibm.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
David Hildenbrand May 21, 2021, 7:42 a.m. UTC | #2
On 21.05.21 05:01, Ilya Leoshkevich wrote:
> qemu-s390x puts a wrong value into SIGILL's siginfo_t's psw.addr: it
> should be a pointer to the instruction following the illegal
> instruction, but at the moment it is a pointer to the illegal
> instruction itself. This breaks OpenJDK, which relies on this value.
> 
> Patch 1 fixes the issue, patch 2 adds a test.

I assume that should fix

https://bugs.launchpad.net/qemu/+bug/1920913

right?
Ilya Leoshkevich May 21, 2021, 10:45 a.m. UTC | #3
On Fri, 2021-05-21 at 09:42 +0200, David Hildenbrand wrote:
> On 21.05.21 05:01, Ilya Leoshkevich wrote:
> > qemu-s390x puts a wrong value into SIGILL's siginfo_t's psw.addr:
> > it
> > should be a pointer to the instruction following the illegal
> > instruction, but at the moment it is a pointer to the illegal
> > instruction itself. This breaks OpenJDK, which relies on this
> > value.
> > 
> > Patch 1 fixes the issue, patch 2 adds a test.
> 
> I assume that should fix
> 
> https://bugs.launchpad.net/qemu/+bug/1920913
> 
> right?

Yes, I have this Buglink in the fix commit message.
I have to admit I did not test Java more extensively - there might be
more things going on - but at least with this the SIGILL on startup is
gone, and very simple programs work.
Cornelia Huck May 21, 2021, 10:59 a.m. UTC | #4
On Fri, 21 May 2021 12:45:30 +0200
Ilya Leoshkevich <iii@linux.ibm.com> wrote:

> On Fri, 2021-05-21 at 09:42 +0200, David Hildenbrand wrote:
> > On 21.05.21 05:01, Ilya Leoshkevich wrote:  
> > > qemu-s390x puts a wrong value into SIGILL's siginfo_t's psw.addr:
> > > it
> > > should be a pointer to the instruction following the illegal
> > > instruction, but at the moment it is a pointer to the illegal
> > > instruction itself. This breaks OpenJDK, which relies on this
> > > value.
> > > 
> > > Patch 1 fixes the issue, patch 2 adds a test.  
> > 
> > I assume that should fix
> > 
> > https://bugs.launchpad.net/qemu/+bug/1920913
> > 
> > right?  
> 
> Yes, I have this Buglink in the fix commit message.

Better add https://gitlab.com/qemu-project/qemu/-/issues/319 as the
Buglink :)

> I have to admit I did not test Java more extensively - there might be
> more things going on - but at least with this the SIGILL on startup is
> gone, and very simple programs work.
> 
>