qemu/linux-user/include/host
Ilya Leoshkevich 565a84c1e6 linux-user/host/s390: Treat EX and EXRL as writes
clang-built s390x branch-relative-long test fails on clang-built s390x
QEMU due to the following sequence of events:

- The test zeroes out a code page, clang generates exrl+xc for this.

- do_helper_xc() is called. Clang generates exrl+xc there as well.

- Since there already exists a TB for the code in question, its page is
  read-only and SIGSEGV is raised.

- host_signal_handler() calls host_signal_write() and the latter does
  not recognize exrl as a write. Therefore page_unprotect() is not
  called and the signal is forwarded to the test.

Fix by treating EXRL (and EX, just in case) as writes. There may be
false positives, but they will lead only to an extra page_unprotect()
call.

Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Tested-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220504114819.1729737-1-iii@linux.ibm.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2022-05-23 22:54:02 +02:00
..
aarch64 linux-user: Introduce host_sigcontext 2022-02-09 08:47:48 +11:00
alpha linux-user: Introduce host_sigcontext 2022-02-09 08:47:48 +11:00
arm linux-user: Introduce host_sigcontext 2022-02-09 08:47:48 +11:00
i386 linux-user: Introduce host_sigcontext 2022-02-09 08:47:48 +11:00
loongarch64 linux-user: Introduce host_sigcontext 2022-02-09 08:47:48 +11:00
mips linux-user: Introduce host_sigcontext 2022-02-09 08:47:48 +11:00
ppc64 ppc64: Avoid pt_regs struct definition 2022-03-20 23:35:27 +01:00
riscv linux-user: Introduce host_sigcontext 2022-02-09 08:47:48 +11:00
s390 linux-user/host/s390: Treat EX and EXRL as writes 2022-05-23 22:54:02 +02:00
s390x
sparc64 linux-user/include/host/sparc64: Fix host_sigcontext 2022-02-09 08:49:30 +11:00
x32
x86_64 linux-user: Introduce host_sigcontext 2022-02-09 08:47:48 +11:00