qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 00/18] linux-user: Extend safe_syscall wrapper use


From: Peter Maydell
Subject: [Qemu-devel] [PATCH 00/18] linux-user: Extend safe_syscall wrapper use
Date: Mon, 6 Jun 2016 19:58:01 +0100

This set of pretty dull patches extends the use of the safe_syscall
wrapper to every syscall listed in the signal(7) manpage as being
interruptible.

Most of the patches are just straightforward "use the wrapper" changes.
For a few things get a little more complicated because we need to use
the direct syscall rather than the helpful libc wrapper:
 * for the IPC syscalls we need to handle the host kernel maybe
   doing these via individual syscalls and maybe via the single
   'ipc' syscall
 * poll has to be implemented via the ppoll syscall now, which means
   converting the timeout argument
 * in order to have all the fcntl-related syscalls go via fcntl64
   (rather than using a wrapper for both fcntl and fcntl64 on 32-bit
   hosts), there are patches which clean up the conversion of the
   target_flock data structures. These in passing fix buggy conversion
   code which was making us fail some LTP tests

The last two patches are trivial ones which neaten up the QEMU
strace output for the cases where the returned errnos printed by
the strace layer are QEMU-internal ones rather than real guest errnos.

This patchset sits on top of:
 * the 'fix various signal race conditions' patchset currently on list:
   https://lists.nongnu.org/archive/html/qemu-devel/2016-05/msg05057.html
 * the fadvise patches (on list, reviewed)
 * the 'provide frame information in x86-64 safe_syscall' patch v2
   (on list, reviewed)

https://git.linaro.org/people/peter.maydell/qemu-arm.git sigrace-fixes-3
is a git branch with those prequisites plus this patchset.

thanks
-- PMM

Peter Maydell (18):
  linux-user: Use safe_syscall wrapper for readv and writev syscalls
  linux-user: Use safe_syscall wrapper for connect syscall
  linux-user: Use safe_syscall wrapper for send* and recv* syscalls
  linux-user: Use safe_syscall wrapper for msgsnd and msgrcv
  linux-user: Use safe_syscall wrapper for mq_timedsend and
    mq_timedreceive
  linux-user: Use safe_syscall wrapper for flock
  linux-user: Use safe_syscall wrapper for rt_sigtimedwait syscall
  linux-user: Use safe_syscall wrapper for sleep syscalls
  linux-user: Use safe_syscall wrapper for poll and ppoll syscalls
  linux-user: Use safe_syscall wrapper for epoll_wait syscalls
  linux-user: Use safe_syscall wrapper for semop
  linux-user: Use safe_syscall wrapper for accept and accept4 syscalls
  linux-user: Use safe_syscall wrapper for ioctl
  linux-user: Use __get_user() and __put_user() to handle structs in
    do_fcntl()
  linux-user: Correct signedness of target_flock l_start and l_len
    fields
  linux-user: Use safe_syscall wrapper for fcntl
  linux-user: Make target_strerror() return 'const char *'
  linux-user: Special-case ERESTARTSYS in target_strerror()

 configure                 |  21 +-
 linux-user/qemu.h         |   2 +-
 linux-user/strace.c       |   4 +-
 linux-user/syscall.c      | 547 ++++++++++++++++++++++++++++------------------
 linux-user/syscall_defs.h |  34 +--
 5 files changed, 359 insertions(+), 249 deletions(-)

-- 
1.9.1




reply via email to

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