qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] ae8467: linux-user: Fix access to /proc/self/


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] ae8467: linux-user: Fix access to /proc/self/exe
Date: Thu, 09 Mar 2023 13:56:17 -0800

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: ae8467d19f7e05c66c6c0b3862dd5523f1c9cf71
      
https://github.com/qemu/qemu/commit/ae8467d19f7e05c66c6c0b3862dd5523f1c9cf71
  Author: Helge Deller <deller@gmx.de>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/main.c
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: Fix access to /proc/self/exe

When accsssing /proc/self/exe from a userspace program, linux-user tries
to resolve the name via realpath(), which may fail if the process
changed the working directory in the meantime.

An example:
- a userspace program ist started with ./testprogram
- the program runs chdir("/tmp")
- then the program calls readlink("/proc/self/exe")
- linux-user tries to run realpath("./testprogram") which fails
  because ./testprogram isn't in /tmp
- readlink() will return -ENOENT back to the program

Avoid this issue by resolving the full path name of the started process
at startup of linux-user and store it in real_exec_path[]. This then
simplifies the emulation of readlink() and readlinkat() as well, because
they can simply copy the path string to userspace.

I noticed this bug because the testsuite of the debian package "pandoc"
failed on linux-user while it succeeded on real hardware.  The full log
is here:
https://buildd.debian.org/status/fetch.php?pkg=pandoc&arch=hppa&ver=2.17.1.1-1.1%2Bb1&stamp=1670153210&raw=0

Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20221205113825.20615-1-deller@gmx.de>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: f8456117843c9f3f43640396bf9c527c1ac4536b
      
https://github.com/qemu/qemu/commit/f8456117843c9f3f43640396bf9c527c1ac4536b
  Author: Mathis Marion <mathis.marion@silabs.com>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/fd-trans.c
    M linux-user/fd-trans.h
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: fix timerfd read endianness conversion

When reading the expiration count from a timerfd, the endianness of the
64bit value read is the one of the host, just as for eventfds.

Signed-off-by: Mathis Marion <mathis.marion@silabs.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20230220085822.626798-2-Mathis.Marion@silabs.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 2334a9d15a1b93fff3f6a9c88e727eff0cad3951
      
https://github.com/qemu/qemu/commit/2334a9d15a1b93fff3f6a9c88e727eff0cad3951
  Author: Mathis Marion <mathis.marion@silabs.com>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/fd-trans.c

  Log Message:
  -----------
  linux-user: add target to host netlink conversions

Added conversions for:
- IFLA_MTU
- IFLA_TXQLEN
- IFLA_AF_SPEC AF_INET6 IFLA_INET6_ADDR_GEN_MODE
These relate to the libnl functions rtnl_link_set_mtu,
rtnl_link_set_txqlen, and rtnl_link_inet6_set_addr_gen_mode.

Signed-off-by: Mathis Marion <mathis.marion@silabs.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20230220085822.626798-4-Mathis.Marion@silabs.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 35d040f47bed98bb05917025f2f8442137d3f669
      
https://github.com/qemu/qemu/commit/35d040f47bed98bb05917025f2f8442137d3f669
  Author: Ilya Leoshkevich <iii@linux.ibm.com>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/generic/target_resource.h
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: Fix unaligned memory access in prlimit64 syscall

target_rlimit64 contains uint64_t fields, so it's 8-byte aligned on
some hosts, while some guests may align their respective type on a
4-byte boundary. This may lead to an unaligned access, which is an UB.

Fix by defining the fields as abi_ullong. This makes the host alignment
match that of the guest, and lets the compiler know that it should emit
code that can deal with the guest alignment.

While at it, also use __get_user() and __put_user() instead of
tswap64().

Fixes: 163a05a8398b ("linux-user: Implement prlimit64 syscall")
Reported-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20230224003907.263914-2-iii@linux.ibm.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 47eb89f530e773c5144260d912a4466e6e2a766a
      
https://github.com/qemu/qemu/commit/47eb89f530e773c5144260d912a4466e6e2a766a
  Author: Max Filippov <jcmvbkbc@gmail.com>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M include/elf.h
    M linux-user/elfload.c

  Log Message:
  -----------
  linux-user: add support for xtensa FDPIC

Define xtensa-specific info_is_fdpic and fill in FDPIC-specific
registers in the xtensa version of init_thread.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Message-Id: <20230205061230.544451-1-jcmvbkbc@gmail.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 6bfb19b2543e2aa79c45ea75bcb18c3511bb9cb1
      
https://github.com/qemu/qemu/commit/6bfb19b2543e2aa79c45ea75bcb18c3511bb9cb1
  Author: Andreas Schwab <schwab@suse.de>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: fill out task state in /proc/self/stat

Some programs want to match an actual task state character.

Signed-off-by: Andreas Schwab <schwab@suse.de>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <mvmedq2kxoe.fsf@suse.de>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 31c9bc961fa651bfad1be70e0a04dadd206c2669
      
https://github.com/qemu/qemu/commit/31c9bc961fa651bfad1be70e0a04dadd206c2669
  Author: Helge Deller <deller@gmx.de>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: Fix brk() to release pages

The current brk() implementation does not de-allocate pages if a lower
address is given compared to earlier brk() calls.
But according to the manpage, brk() shall deallocate memory in this case
and currently it breaks a real-world application, specifically building
the debian gcl package in qemu-user.

Fix this issue by reworking the qemu brk() implementation.

Tested with the C-code testcase included in qemu commit 4d1de87c750, and
by building debian package of gcl in a hppa-linux guest on a x86-64
host.

Signed-off-by: Helge Deller <deller@gmx.de>
Message-Id: <Y6gId80ek49TK1xB@p100>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 7c20489be8b0b958493793c5ba8351ce2c864753
      
https://github.com/qemu/qemu/commit/7c20489be8b0b958493793c5ba8351ce2c864753
  Author: Helge Deller <deller@gmx.de>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/strace.c

  Log Message:
  -----------
  linux-user: Provide print_raw_param64() for 64-bit values

Add a new function print_raw_param64() to print 64-bit values in the
same way as print_raw_param(). This prevents that qemu_log() is used to
work around the problem that print_raw_param() can only print 32-bit
values when compiled for 32-bit targets.

Additionally convert the existing 64-bit users in print_timespec64(),
print_rlimit64() and print_preadwrite64() over to this new function and
drop some unneccessary spaces.

Suggested-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>

Message-Id: <Y9lNbFNyRSUhhrHa@p100>
[lvivier: remove print_preadwrite64 and print_rlimit64 part]
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: b72f7e435276d3778d244874925f7df297e54af2
      
https://github.com/qemu/qemu/commit/b72f7e435276d3778d244874925f7df297e54af2
  Author: Helge Deller <deller@gmx.de>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/strace.c
    M linux-user/strace.list

  Log Message:
  -----------
  linux-user: Add strace for prlimit64() syscall

Add proper prlimit64() strace output.

Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20221222190639.124078-1-deller@gmx.de>
[lvivier: use print_raw_param64()]
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 27897dba7b35b81a0ecf6472761981e1c6027e42
      
https://github.com/qemu/qemu/commit/27897dba7b35b81a0ecf6472761981e1c6027e42
  Author: Mathis Marion <mathis.marion@silabs.com>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: fix sockaddr_in6 endianness

The sin6_scope_id field uses the host byte order, so there is a
conversion to be made when host and target endianness differ.

Signed-off-by: Mathis Marion <mathis.marion@silabs.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20230307154256.101528-2-Mathis.Marion@silabs.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 74b590ca308e5f09d55173d1555e9e69253f0b35
      
https://github.com/qemu/qemu/commit/74b590ca308e5f09d55173d1555e9e69253f0b35
  Author: Mathis Marion <mathis.marion@silabs.com>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/fd-trans.c

  Log Message:
  -----------
  linux-user: handle netlink flag NLA_F_NESTED

Newer kernel versions require this flag to be present contrary to older
ones. Depending on the libnl version it is added or not.

Typically when using rtnl_link_inet6_set_addr_gen_mode, the netlink
packet generated may contain the following attribute:

with libnl 3.4

  {nla_len=16, nla_type=IFLA_AF_SPEC},
  [
    {nla_len=12, nla_type=AF_INET6},
    [{nla_len=5, nla_type=IFLA_INET6_ADDR_GEN_MODE}, IN6_ADDR_GEN_MODE_NONE]
  ]

with libnl 3.7

  {nla_len=16, nla_type=NLA_F_NESTED|IFLA_AF_SPEC},
  [
    {nla_len=12, nla_type=NLA_F_NESTED|AF_INET6},
    [{nla_len=5, nla_type=IFLA_INET6_ADDR_GEN_MODE}, IN6_ADDR_GEN_MODE_NONE]]
  ]

Masking the type is likely needed in other places. Only the above cases
are implemented in this patch.

Signed-off-by: Mathis Marion <mathis.marion@silabs.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20230307154256.101528-3-Mathis.Marion@silabs.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 31ca4ce3d30c91d87be0ddb3814b2a8516f0d148
      
https://github.com/qemu/qemu/commit/31ca4ce3d30c91d87be0ddb3814b2a8516f0d148
  Author: Helge Deller <deller@gmx.de>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/alpha/target_mman.h
    M linux-user/generic/target_mman.h
    M linux-user/hppa/target_mman.h
    M linux-user/strace.list
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: Add translation for argument of msync()

msync() uses the flags MS_ASYNC, MS_INVALIDATE and MS_SYNC, which differ
between platforms, specifcally on alpha and hppa.

Add a target to host translation for those and wire up a nicer strace
output.

This fixes the testsuite of the macaulay2 debian package with a hppa-linux
guest on a x86-64 host.

Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>

Message-Id: <Y5rMcts4qe15RaVN@p100>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: d25f69e76184f769e2d17022955f554a2891dac5
      
https://github.com/qemu/qemu/commit/d25f69e76184f769e2d17022955f554a2891dac5
  Author: Helge Deller <deller@gmx.de>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/strace.c
    M linux-user/syscall.c

  Log Message:
  -----------
  linux-user: Emulate CLONE_PIDFD flag in clone()

Add emulation for the CLONE_PIDFD flag of the clone() syscall.
This flag was added in Linux kernel 5.2.

Successfully tested on a x86-64 Linux host with hppa-linux target.
Can be verified by running the testsuite of the qcoro debian package,
which breaks hard and kills the currently logged-in user without this
patch.

Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>

Message-Id: <Y4XoJCpvUA1JD7Sj@p100>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 2bc6c7d1c56bc90a270f17c87bea477887335d30
      
https://github.com/qemu/qemu/commit/2bc6c7d1c56bc90a270f17c87bea477887335d30
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c

  Log Message:
  -----------
  linux-user/sparc: Tidy syscall trap

Use TT_TRAP.

For sparc32, 0x88 is the "Slowaris" system call, currently BAD_TRAP
in the kernel's ttable_32.S.  For sparc64, 0x110 is tl0_linux32, the
sparc32 trap, now folded into the TARGET_ABI32 case via TT_TRAP.

For sparc64, there does still exist trap 0x111 as tl0_oldlinux64,
which was replaced by 0x16d as tl0_linux64 in 1998.  Since no one
has noticed, don't bother implementing it now.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20230216054516.1267305-3-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 3f5fa7741d3c86d207901774ac4f13028408bf76
      
https://github.com/qemu/qemu/commit/3f5fa7741d3c86d207901774ac4f13028408bf76
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c

  Log Message:
  -----------
  linux-user/sparc: Tidy syscall error return

Reduce ifdefs with #define syscall_cc.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230216054516.1267305-4-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: f2f06a7db6ac04d4b65f387d79ef8c007d51980a
      
https://github.com/qemu/qemu/commit/f2f06a7db6ac04d4b65f387d79ef8c007d51980a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c

  Log Message:
  -----------
  linux-user/sparc: Use TT_TRAP for flush windows

The v9 and pre-v9 code can be unified with this macro.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20230216054516.1267305-5-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 04109569c55994a96faa2db6b4ecd279d8917cbd
      
https://github.com/qemu/qemu/commit/04109569c55994a96faa2db6b4ecd279d8917cbd
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c

  Log Message:
  -----------
  linux-user/sparc: Tidy window spill/fill traps

Add some macros to localize the hw difference between v9 and pre-v9.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20230216054516.1267305-6-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: bce3bd91f44f56a55ca24c5f98ca01fd2d9db624
      
https://github.com/qemu/qemu/commit/bce3bd91f44f56a55ca24c5f98ca01fd2d9db624
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c
    M linux-user/sparc/signal.c

  Log Message:
  -----------
  linux-user/sparc: Fix sparc64_{get, set}_context traps

These traps are present for sparc64 with ilp32, aka sparc32plus.
Enabling them means adjusting the defines over in signal.c,
and fixing an incorrect usage of abi_ulong when we really meant
the full register, target_ulong.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230216054516.1267305-7-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 291561bc75aa10de48ad7f3b8c7ee273db134b65
      
https://github.com/qemu/qemu/commit/291561bc75aa10de48ad7f3b8c7ee273db134b65
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c

  Log Message:
  -----------
  linux-user/sparc: Handle software breakpoint trap

This is 'ta 1' for both v9 and pre-v9.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230216054516.1267305-8-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: d26b34f3b061c936474df40753f1d61d543fe304
      
https://github.com/qemu/qemu/commit/d26b34f3b061c936474df40753f1d61d543fe304
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c

  Log Message:
  -----------
  linux-user/sparc: Handle division by zero traps

In addition to the hw trap vector, there is a software trap
assigned for older sparc without hw division instructions.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230216054516.1267305-9-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 99cccc8a42352d776bbc352b044a65b2d054e74b
      
https://github.com/qemu/qemu/commit/99cccc8a42352d776bbc352b044a65b2d054e74b
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c

  Log Message:
  -----------
  linux-user/sparc: Handle getcc, setcc, getpsr traps

These are really only meaningful for sparc32, but they're
still present for backward compatibility for sparc64.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230216054516.1267305-10-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 5d45998aee4f77a94ffce220236d1ba326a29e3e
      
https://github.com/qemu/qemu/commit/5d45998aee4f77a94ffce220236d1ba326a29e3e
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c

  Log Message:
  -----------
  linux-user/sparc: Handle priviledged opcode trap

For the most part priviledged opcodes are ifdefed out of the
user-only sparc translator, which will then incorrectly produce
illegal opcode traps.  But there are some code paths that
properly raise TT_PRIV_INSN, so we must handle it.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230216054516.1267305-11-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 2e92ed8efe698c2203213f3aef65a071be3fb30a
      
https://github.com/qemu/qemu/commit/2e92ed8efe698c2203213f3aef65a071be3fb30a
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c

  Log Message:
  -----------
  linux-user/sparc: Handle privilidged action trap

This is raised by using an %asi < 0x80 in user-mode.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230216054516.1267305-12-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 14bd94d30847f38c712c3bc8a9ec20a501f6eecb
      
https://github.com/qemu/qemu/commit/14bd94d30847f38c712c3bc8a9ec20a501f6eecb
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c

  Log Message:
  -----------
  linux-user/sparc: Handle coprocessor disabled trap

Since qemu does not implement a sparc coprocessor, all such
instructions raise this trap.  Because of that, we never raise
the coprocessor exception trap, which would be vector 0x28.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230216054516.1267305-13-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 10c58f3552c0b6750432a1712c98951339fb49db
      
https://github.com/qemu/qemu/commit/10c58f3552c0b6750432a1712c98951339fb49db
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c

  Log Message:
  -----------
  linux-user/sparc: Handle unimplemented flush trap

For sparc64, TT_UNIMP_FLUSH == TT_ILL_INSN, so this is
already handled.  For sparc32, the kernel uses SKIP_TRAP.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230216054516.1267305-14-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 0835f6f1bee3c753f8c77f22de3b46ebcf017870
      
https://github.com/qemu/qemu/commit/0835f6f1bee3c753f8c77f22de3b46ebcf017870
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c
    M target/sparc/cpu.h

  Log Message:
  -----------
  linux-user/sparc: Handle floating-point exceptions

Raise SIGFPE for ieee exceptions.

The other types, such as FSR_FTT_UNIMPFPOP, should not appear,
because we enable normal emulation of missing insns at the
start of sparc_cpu_realizefn().

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230216054516.1267305-15-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: b7fe6e777cbbb43c189833fc59a97cf331aed53e
      
https://github.com/qemu/qemu/commit/b7fe6e777cbbb43c189833fc59a97cf331aed53e
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/sparc/cpu_loop.c
    M linux-user/sparc/target_signal.h
    M linux-user/syscall_defs.h

  Log Message:
  -----------
  linux-user/sparc: Handle tag overflow traps

This trap is raised by taddcctv and tsubcctv insns.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230216054516.1267305-16-richard.henderson@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 6d0df648e2671ddb354eb3c545780b64472770f4
      
https://github.com/qemu/qemu/commit/6d0df648e2671ddb354eb3c545780b64472770f4
  Author: fanwj@mail.ustc.edu.cn <fanwj@mail.ustc.edu.cn>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M linux-user/i386/cpu_loop.c
    M linux-user/main.c

  Log Message:
  -----------
  linux-user: fix bug about incorrect base addresss of gdt on i386 and x86_64

On linux user mode, CPUX86State::gdt::base from Different CPUX86State Objects 
have same value, It is incorrect! Every CPUX86State::gdt::base Must points to 
independent memory space.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1405
Signed-off-by: fanwenjie <fanwj@mail.ustc.edu.cn>
Message-Id: <4172b90.58b08.18631b77860.Coremail.fanwj@mail.ustc.edu.cn>
[lv: remove unnecessary casts, split overlong line]
Signed-off-by: Laurent Vivier <laurent@vivier.eu>


  Commit: 6ed0489672cc3a58804e1e5ad4ff92340944950a
      
https://github.com/qemu/qemu/commit/6ed0489672cc3a58804e1e5ad4ff92340944950a
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2023-03-09 (Thu, 09 Mar 2023)

  Changed paths:
    M include/elf.h
    M linux-user/alpha/target_mman.h
    M linux-user/elfload.c
    M linux-user/fd-trans.c
    M linux-user/fd-trans.h
    M linux-user/generic/target_mman.h
    M linux-user/generic/target_resource.h
    M linux-user/hppa/target_mman.h
    M linux-user/i386/cpu_loop.c
    M linux-user/main.c
    M linux-user/sparc/cpu_loop.c
    M linux-user/sparc/signal.c
    M linux-user/sparc/target_signal.h
    M linux-user/strace.c
    M linux-user/strace.list
    M linux-user/syscall.c
    M linux-user/syscall_defs.h
    M target/sparc/cpu.h

  Log Message:
  -----------
  Merge tag 'linux-user-for-8.0-pull-request' of 
https://gitlab.com/laurent_vivier/qemu into staging

Pull request linux-user 20230308

Fix gdt on i386/x86_64
Handle traps on sparc
Add translation for argument of msync
Emulate CLONE_PIDFD flag in clone
handle netlink flag NLA_F_NESTED
fix sockaddr_in6 endianness
Fix brk() to release pages
fill out task state in /proc/self/stat
add support for xtensa FDPIC
Fix unaligned memory access in prlimit64 syscall
add target to host netlink conversions
fix timerfd read endianness conversion
Fix access to /proc/self/exe
Add strace for prlimit64() syscall

# -----BEGIN PGP SIGNATURE-----
#
# iQJGBAABCAAwFiEEzS913cjjpNwuT1Fz8ww4vT8vvjwFAmQIjXgSHGxhdXJlbnRA
# dml2aWVyLmV1AAoJEPMMOL0/L748TnYP/RliWnYV+KikcHI85yv2abvZEXO05L20
# ycRs8oAiKcsivjuIh2uB27zw8alnVqw4tDzHO76DIBPJhNXPoFWs+9aGvStI4c3J
# dtsQY6S3445i2SShC014QuirZYZTi6oXZ6R8QgGdCkyQzCDQfOKcoxiDezlHXYLT
# oCyCQXo3yIHWeGiBOr2Il/iwk3Worb/gztcIDvWOWdeEshPg4GaoYf3HL+rl1pFw
# SyMlaOPA5REbB/j2kbD5NOETHJDTArZ+oOmb6sz7p8xfQzxjGhYTfBjeWHG9jSpc
# KXCZxu+QzJEoC86FRykTc5pX7Ttvqr5nfciJTKC8UR2wlunQkCveDjoJtKgb+c4S
# rFGiiBBf7DgxE9pviPsLfQy6gkZFabh8i1KwkZqCFv/I6bqacY8pQZxfnzlAm6QX
# RnJ/vopxlX4MGUFHXL1o+RYI4Uxim0cso8x0ArXT/RnGHB0vyP3tb+Kt8ERKflsE
# nWSYUSUEtdHK+OkEuOzNIVBUug+yMrIdTrriWT4A/xOJPY0IzaR1GNDuM3mgepg1
# bBCpKgCYt5RPlmxoDvlqZ4VWUFbNpt9WeEfxX6iq5V/4RKhhNhOIZVOvIK+mNj+m
# Si0C+iTEzNKS02QidrrZ70lSFSFXvkIWZwGc7aTviQT86E88NmiTNhr/2o7kcyUX
# MPomQJ8bUclF
# =gECL
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 08 Mar 2023 13:28:24 GMT
# gpg:                using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C
# gpg:                issuer "laurent@vivier.eu"
# gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [full]
# gpg:                 aka "Laurent Vivier <laurent@vivier.eu>" [full]
# gpg:                 aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" 
[full]
# Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F  5173 F30C 38BD 3F2F BE3C

* tag 'linux-user-for-8.0-pull-request' of 
https://gitlab.com/laurent_vivier/qemu: (28 commits)
  linux-user: fix bug about incorrect base addresss of gdt on i386 and x86_64
  linux-user/sparc: Handle tag overflow traps
  linux-user/sparc: Handle floating-point exceptions
  linux-user/sparc: Handle unimplemented flush trap
  linux-user/sparc: Handle coprocessor disabled trap
  linux-user/sparc: Handle privilidged action trap
  linux-user/sparc: Handle priviledged opcode trap
  linux-user/sparc: Handle getcc, setcc, getpsr traps
  linux-user/sparc: Handle division by zero traps
  linux-user/sparc: Handle software breakpoint trap
  linux-user/sparc: Fix sparc64_{get, set}_context traps
  linux-user/sparc: Tidy window spill/fill traps
  linux-user/sparc: Use TT_TRAP for flush windows
  linux-user/sparc: Tidy syscall error return
  linux-user/sparc: Tidy syscall trap
  linux-user: Emulate CLONE_PIDFD flag in clone()
  linux-user: Add translation for argument of msync()
  linux-user: handle netlink flag NLA_F_NESTED
  linux-user: fix sockaddr_in6 endianness
  linux-user: Add strace for prlimit64() syscall
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/ee59483267de...6ed0489672cc



reply via email to

[Prev in Thread] Current Thread [Next in Thread]