From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59433) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b9zjD-0008WS-82 for qemu-devel@nongnu.org; Mon, 06 Jun 2016 14:58:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b9zjB-0003ke-UM for qemu-devel@nongnu.org; Mon, 06 Jun 2016 14:58:23 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:57516) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b9zjB-0003kZ-Mg for qemu-devel@nongnu.org; Mon, 06 Jun 2016 14:58:21 -0400 From: Peter Maydell Date: Mon, 6 Jun 2016 19:58:01 +0100 Message-Id: <1465239499-5048-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH 00/18] linux-user: Extend safe_syscall wrapper use List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: patches@linaro.org, Riku Voipio , Laurent Vivier 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