From patchwork Tue Feb 20 09:16:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 875447 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zlw8374wjz9s01 for ; Tue, 20 Feb 2018 20:20:35 +1100 (AEDT) Received: from localhost ([::1]:54270 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eo46D-0005sA-Hv for incoming@patchwork.ozlabs.org; Tue, 20 Feb 2018 04:20:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44588) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eo42l-0003sH-M3 for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:17:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eo42i-0005ih-Au for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:16:59 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:42329) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eo42h-0005hU-Tp for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:16:56 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue102 [212.227.15.183]) with ESMTPSA (Nemesis) id 0MMF1Z-1er6ps1WJB-007zpx; Tue, 20 Feb 2018 10:16:45 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Tue, 20 Feb 2018 10:16:37 +0100 Message-Id: <20180220091640.10875-2-laurent@vivier.eu> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180220091640.10875-1-laurent@vivier.eu> References: <20180220091640.10875-1-laurent@vivier.eu> X-Provags-ID: V03:K0:QgcSEfLAyz1viFqKt2fFziXq2HgYFTfUFF00pPhMmg77WDC4hPV GMHJF7Bu8gt8PxB72XTewXOmY9KuPuvCBLQLrtJhSE6SlKn4DjKeFma8XZlyD/yknAlDiRZ pJfqmALj38y3QtbgZOxFYl4u5AjgEH0xokcbo8nmSdwQV+OJtKhAecJrj/rgjUIcPdJIMOP ObpMxP2bfmkrLpmyqapsQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:tVN+mGZDUC8=:OHRR0zkEyPcPms1NKHi4pk /9/UXPHB1LKgdV/XmvxgCT8+QLyEWLL+z3LtCaINJffJQkMUmSLSgt3E/pWy2c29OX2Mx7d0f 77KUlOA8RjfDXfMvhss43Mm7M99rRxzoeOTJUgFJjwTy15txWSDP6NahPL02IVCFXyy9kPTFK MD+HacYReDZsNvDE3UIdLw3x44HtjAPcmdqoCDbwxoY8r3OqvaDDyObbNNxaqK+8pddPrl8fx mEmChR/A0KHpmU7HupRBXIENpQh55BKwUkC5DeUaWQEz51amXB3Q3rFxcHLOHX3poPKb7/J/d vtS8oVhllvbTP9YI1Axchj6ZQ5jLESm3BKkU7MFa9Xqhw6gsBKNPPer/okNOUQgitYQuwugCR Xdg7Qt1F9VMzH/UBI+/4mWF9X8s16+z4JLNoD1G4ZInaMQcYRtcqywb7E8wJersRCod18yRFK amA+1s8Un7UVeYwnNjD4zEQx+8bmDBPC7vfTM4yVoY1BqISVJigVcTJ5eyGBy6p0ClOjl8QbA o/nKCAUaOMJahMxalXyOZC3H4v14wnW9GyI4FJakbgrBmC97nwfRE1cpT1r2mPCnRTKlmBNfj 9R40JiBMt/sbnRy5Fi0s80usTI5Bh4HahUjkKPaPK1OkffHa+R5ovJpdBU20pzT7chHPbD3AB yfidGXhtt5zQQ0qzmuWqZWgzP8rY9+ZF7yCrSFRBSKUVM4H0tENTqO+iBhPV3EZGB1EXiRSgn CpRWnNQSCgHweQMr3jYV1S8RUzfuOmbfpgltNA== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.17.13 Subject: [Qemu-devel] [PULL 1/4] linux-user: Implement ioctl cmd TIOCGPTPEER X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andreas Schwab , Riku Voipio , Laurent Vivier Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Andreas Schwab With glibc 2.27 the openpty function prefers the TIOCGPTPEER ioctl. Signed-off-by: Andreas Schwab Reviewed-by: Laurent Vivier Message-Id: Signed-off-by: Laurent Vivier --- linux-user/aarch64/termbits.h | 2 ++ linux-user/alpha/termbits.h | 1 + linux-user/arm/termbits.h | 1 + linux-user/cris/termbits.h | 1 + linux-user/hppa/termbits.h | 2 ++ linux-user/i386/termbits.h | 1 + linux-user/ioctls.h | 3 +++ linux-user/m68k/termbits.h | 1 + linux-user/microblaze/termbits.h | 1 + linux-user/mips/termbits.h | 1 + linux-user/nios2/termbits.h | 2 ++ linux-user/openrisc/termbits.h | 2 ++ linux-user/ppc/termbits.h | 1 + linux-user/s390x/termbits.h | 1 + linux-user/sh4/termbits.h | 1 + linux-user/sparc/termbits.h | 1 + linux-user/sparc64/termbits.h | 1 + linux-user/syscall.c | 9 +++++++++ linux-user/tilegx/termbits.h | 1 + linux-user/x86_64/termbits.h | 1 + 20 files changed, 34 insertions(+) diff --git a/linux-user/aarch64/termbits.h b/linux-user/aarch64/termbits.h index b64ba974cf..f9f80f0f37 100644 --- a/linux-user/aarch64/termbits.h +++ b/linux-user/aarch64/termbits.h @@ -187,6 +187,8 @@ struct target_termios { /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T', 0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) + /* Safely open the slave */ #define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */ #define TARGET_FIOCLEX 0x5451 diff --git a/linux-user/alpha/termbits.h b/linux-user/alpha/termbits.h index 6406b6a799..139bc87fa6 100644 --- a/linux-user/alpha/termbits.h +++ b/linux-user/alpha/termbits.h @@ -245,6 +245,7 @@ struct target_termios { #define TARGET_TIOCGSID 0x5429 /* Return the session ID of FD */ #define TARGET_TIOCGPTN TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T',0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* Safely open the slave */ #define TARGET_TIOCSERCONFIG 0x5453 #define TARGET_TIOCSERGWILD 0x5454 diff --git a/linux-user/arm/termbits.h b/linux-user/arm/termbits.h index 7772df175c..a61e138ec4 100644 --- a/linux-user/arm/termbits.h +++ b/linux-user/arm/termbits.h @@ -185,6 +185,7 @@ struct target_termios { #define TARGET_TIOCGSID 0x5429 /* Return the session ID of FD */ #define TARGET_TIOCGPTN TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T',0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* Safely open the slave */ #define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */ #define TARGET_FIOCLEX 0x5451 diff --git a/linux-user/cris/termbits.h b/linux-user/cris/termbits.h index fc82ca084e..c825cd2f5e 100644 --- a/linux-user/cris/termbits.h +++ b/linux-user/cris/termbits.h @@ -182,6 +182,7 @@ struct target_termios { #define TARGET_TIOCGSID 0x5429 /* Return the session ID of FD */ #define TARGET_TIOCGPTN TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T',0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* Safely open the slave */ #define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */ #define TARGET_FIOCLEX 0x5451 diff --git a/linux-user/hppa/termbits.h b/linux-user/hppa/termbits.h index e9633ef119..ad51c9c911 100644 --- a/linux-user/hppa/termbits.h +++ b/linux-user/hppa/termbits.h @@ -186,6 +186,8 @@ struct target_termios { /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T', 0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) + /* Safely open the slave */ #define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */ #define TARGET_FIOCLEX 0x5451 diff --git a/linux-user/i386/termbits.h b/linux-user/i386/termbits.h index e051a3af74..32dd0dde5d 100644 --- a/linux-user/i386/termbits.h +++ b/linux-user/i386/termbits.h @@ -195,6 +195,7 @@ struct target_termios { #define TARGET_TIOCGSID 0x5429 /* Return the session ID of FD */ #define TARGET_TIOCGPTN TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T',0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* Safely open the slave */ #define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */ #define TARGET_FIOCLEX 0x5451 diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index 35cad6f944..586c794639 100644 --- a/linux-user/ioctls.h +++ b/linux-user/ioctls.h @@ -40,6 +40,9 @@ IOCTL(TIOCSETD, IOC_W, MK_PTR(TYPE_INT)) IOCTL(TIOCGPTN, IOC_R, MK_PTR(TYPE_INT)) IOCTL(TIOCSPTLCK, IOC_W, MK_PTR(TYPE_INT)) +#ifdef TIOCGPTPEER + IOCTL_SPECIAL(TIOCGPTPEER, 0, do_ioctl_tiocgptpeer, TYPE_INT) +#endif IOCTL(FIOCLEX, 0, TYPE_NULL) IOCTL(FIONCLEX, 0, TYPE_NULL) IOCTL(FIOASYNC, IOC_W, MK_PTR(TYPE_INT)) diff --git a/linux-user/m68k/termbits.h b/linux-user/m68k/termbits.h index f7982fb6c2..9df58dc5cb 100644 --- a/linux-user/m68k/termbits.h +++ b/linux-user/m68k/termbits.h @@ -196,6 +196,7 @@ struct target_termios { #define TARGET_TIOCGSID 0x5429 /* Return the session ID of FD */ #define TARGET_TIOCGPTN TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T',0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* Safely open the slave */ #define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */ #define TARGET_FIOCLEX 0x5451 diff --git a/linux-user/microblaze/termbits.h b/linux-user/microblaze/termbits.h index fc82ca084e..c825cd2f5e 100644 --- a/linux-user/microblaze/termbits.h +++ b/linux-user/microblaze/termbits.h @@ -182,6 +182,7 @@ struct target_termios { #define TARGET_TIOCGSID 0x5429 /* Return the session ID of FD */ #define TARGET_TIOCGPTN TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T',0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* Safely open the slave */ #define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */ #define TARGET_FIOCLEX 0x5451 diff --git a/linux-user/mips/termbits.h b/linux-user/mips/termbits.h index a0bcad0946..49a72c5539 100644 --- a/linux-user/mips/termbits.h +++ b/linux-user/mips/termbits.h @@ -233,6 +233,7 @@ struct target_termios { #define TARGET_TIOCGPKT TARGET_IOR('T', 0x38, int) #define TARGET_TIOCGPTLCK TARGET_IOR('T', 0x39, int) #define TARGET_TIOCGEXCL TARGET_IOR('T', 0x40, int) +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* I hope the range from 0x5480 on is free ... */ #define TARGET_TIOCSCTTY 0x5480 /* become controlling tty */ diff --git a/linux-user/nios2/termbits.h b/linux-user/nios2/termbits.h index b64ba974cf..f9f80f0f37 100644 --- a/linux-user/nios2/termbits.h +++ b/linux-user/nios2/termbits.h @@ -187,6 +187,8 @@ struct target_termios { /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T', 0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) + /* Safely open the slave */ #define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */ #define TARGET_FIOCLEX 0x5451 diff --git a/linux-user/openrisc/termbits.h b/linux-user/openrisc/termbits.h index 373af77215..231a49806b 100644 --- a/linux-user/openrisc/termbits.h +++ b/linux-user/openrisc/termbits.h @@ -245,6 +245,8 @@ struct target_termios3 { #define TARGET_TIOCGPTN TARGET_IOR('T', 0x30, unsigned int) /* Lock/unlock Pty */ #define TARGET_TIOCSPTLCK TARGET_IOW('T', 0x31, int) +/* Safely open the slave */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* Get primary device node of /dev/console */ #define TARGET_TIOCGDEV TARGET_IOR('T', 0x32, unsigned int) #define TARGET_TCGETX 0x5432 /* SYS5 TCGETX compatibility */ diff --git a/linux-user/ppc/termbits.h b/linux-user/ppc/termbits.h index 73e7151756..a5b1bb783b 100644 --- a/linux-user/ppc/termbits.h +++ b/linux-user/ppc/termbits.h @@ -219,6 +219,7 @@ struct target_termios { #define TARGET_TIOCGSID 0x5429 /* Return the session ID of FD */ #define TARGET_TIOCGPTN TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T',0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* Safely open the slave */ #define TARGET_TIOCSERCONFIG 0x5453 #define TARGET_TIOCSERGWILD 0x5454 diff --git a/linux-user/s390x/termbits.h b/linux-user/s390x/termbits.h index 2a78a05594..8bcca89cd7 100644 --- a/linux-user/s390x/termbits.h +++ b/linux-user/s390x/termbits.h @@ -252,6 +252,7 @@ struct target_ktermios { #define TARGET_TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */ #define TARGET_TIOCGDEV _IOR('T',0x32, unsigned int) /* Get real dev no below /dev/console */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* Safely open the slave */ #define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */ #define TARGET_FIOCLEX 0x5451 diff --git a/linux-user/sh4/termbits.h b/linux-user/sh4/termbits.h index 2ff774f6ba..5723ed7752 100644 --- a/linux-user/sh4/termbits.h +++ b/linux-user/sh4/termbits.h @@ -250,6 +250,7 @@ ID of FD */ #define TARGET_TIOCGPTN TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-m ux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T',0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* Safely open the slave */ #define TARGET_TIOCSERCONFIG TARGET_IO('T', 83) /* 0x5453 */ diff --git a/linux-user/sparc/termbits.h b/linux-user/sparc/termbits.h index 691600d27a..113d6dfbdb 100644 --- a/linux-user/sparc/termbits.h +++ b/linux-user/sparc/termbits.h @@ -245,6 +245,7 @@ struct target_termios { /* Get minor device of a pty master's FD -- Solaris equiv is ISPTM */ #define TARGET_TIOCGPTN TARGET_IOR('t', 134, unsigned int) /* Get Pty Number */ #define TARGET_TIOCSPTLCK TARGET_IOW('t', 135, int) /* Lock/unlock PTY */ +#define TARGET_TIOCGPTPEER TARGET_IO('t', 137) /* Safely open the slave */ /* Little f */ #define TARGET_FIOCLEX TARGET_IO('f', 1) diff --git a/linux-user/sparc64/termbits.h b/linux-user/sparc64/termbits.h index 691600d27a..113d6dfbdb 100644 --- a/linux-user/sparc64/termbits.h +++ b/linux-user/sparc64/termbits.h @@ -245,6 +245,7 @@ struct target_termios { /* Get minor device of a pty master's FD -- Solaris equiv is ISPTM */ #define TARGET_TIOCGPTN TARGET_IOR('t', 134, unsigned int) /* Get Pty Number */ #define TARGET_TIOCSPTLCK TARGET_IOW('t', 135, int) /* Lock/unlock PTY */ +#define TARGET_TIOCGPTPEER TARGET_IO('t', 137) /* Safely open the slave */ /* Little f */ #define TARGET_FIOCLEX TARGET_IO('f', 1) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 82b35a6bdf..effc3a0881 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -5636,6 +5636,15 @@ static abi_long do_ioctl_kdsigaccept(const IOCTLEntry *ie, uint8_t *buf_temp, return get_errno(safe_ioctl(fd, ie->host_cmd, sig)); } +#ifdef TIOCGPTPEER +static abi_long do_ioctl_tiocgptpeer(const IOCTLEntry *ie, uint8_t *buf_temp, + int fd, int cmd, abi_long arg) +{ + int flags = target_to_host_bitmask(arg, fcntl_flags_tbl); + return get_errno(safe_ioctl(fd, ie->host_cmd, flags)); +} +#endif + static IOCTLEntry ioctl_entries[] = { #define IOCTL(cmd, access, ...) \ { TARGET_ ## cmd, cmd, #cmd, access, 0, { __VA_ARGS__ } }, diff --git a/linux-user/tilegx/termbits.h b/linux-user/tilegx/termbits.h index 91ec23654e..966daec088 100644 --- a/linux-user/tilegx/termbits.h +++ b/linux-user/tilegx/termbits.h @@ -242,6 +242,7 @@ struct target_termios2 { #define TARGET_TIOCGPKT TARGET_IOR('T', 0x38, int) #define TARGET_TIOCGPTLCK TARGET_IOR('T', 0x39, int) #define TARGET_TIOCGEXCL TARGET_IOR('T', 0x40, int) +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) #define TARGET_FIONCLEX 0x5450 #define TARGET_FIOCLEX 0x5451 diff --git a/linux-user/x86_64/termbits.h b/linux-user/x86_64/termbits.h index 387e742592..f5776a8aa6 100644 --- a/linux-user/x86_64/termbits.h +++ b/linux-user/x86_64/termbits.h @@ -215,6 +215,7 @@ struct target_termios { #define TARGET_TCSETSF2 TARGET_IOW('T',0x2D, struct termios2) #define TARGET_TIOCGPTN TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ #define TARGET_TIOCSPTLCK TARGET_IOW('T',0x31, int) /* Lock/unlock Pty */ +#define TARGET_TIOCGPTPEER TARGET_IO('T', 0x41) /* Safely open the slave */ #define TARGET_FIONCLEX 0x5450 /* these numbers need to be adjusted. */ #define TARGET_FIOCLEX 0x5451 From patchwork Tue Feb 20 09:16:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 875446 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zlw8374tcz9ryl for ; Tue, 20 Feb 2018 20:20:34 +1100 (AEDT) Received: from localhost ([::1]:54266 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eo46C-0005on-75 for incoming@patchwork.ozlabs.org; Tue, 20 Feb 2018 04:20:32 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44560) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eo42k-0003rq-53 for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:16:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eo42h-0005hK-1R for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:16:58 -0500 Received: from mout.kundenserver.de ([217.72.192.74]:34365) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eo42g-0005ff-OF for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:16:54 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue102 [212.227.15.183]) with ESMTPSA (Nemesis) id 0LjJi3-1eCo0f0EDn-00dT2B; Tue, 20 Feb 2018 10:16:46 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Tue, 20 Feb 2018 10:16:38 +0100 Message-Id: <20180220091640.10875-3-laurent@vivier.eu> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180220091640.10875-1-laurent@vivier.eu> References: <20180220091640.10875-1-laurent@vivier.eu> MIME-Version: 1.0 X-Provags-ID: V03:K0:bNjBS5llXgGgcGQ4dGBYLQ/4qGkwwmgL3nocEN1hX8tIsD6mAGP f5tEzp36Wi8NAHUUMLuqumcC38cqpdilNQY2CAow6XUCA2tMGLrQRrXzthgOEMBIqyYV4Dj PlYvb+ryGt07zYORSGOD8zDoJMYwbB1NcRvOz9Yuh/JxlgUM+Ev3FH2MIgCAG2nf2alU9Bo qgnYlxDR4RE5j/3//bIGw== X-UI-Out-Filterresults: notjunk:1; V01:K0:C/a9KUQwqt0=:I4ooGTir6VTClGyXp6zIVF ormtOUdqMONzdxgAb2dglS5DNrn+VlV9Gdvg3SDpjV9nd3mudyIyuQFypLcdr9jaqGuMwLQtM J1nZt+p40mpr1YB79VQaaOqlMpxceS41pOjqoKIsfbN73B5QaV15gxGuNFFVhIK2jBW+HE6Om 3um7NjLe/5qHMFbdjgD6fGnTc3GhTs2RpyU7W0HUCq5+1y6TrKYD+aYO+UExW2h/Y3A7IjWg3 RQ9mKWnI/wE+74buDliDx+/2mnp2xifEam7083X8n+TmISwbxZeQTEbW5sPlXZb/1LJbu5aij yRmoLg/GX2KIQRxVYXfn0eCpPXKNPbykywV6dcLt88AMkbqOP6Z2KtMl3JR5osswOkBJnlfQr rCRPElH2BaasJSGzbXroN0sIbFh055RPMuxVs1fpAjNPSEy6GkXdnkNImxtiL3KB/9MKKT/J+ qpmvmBkNSlSmwGbQ8+B4bIXzKG9lyklwFZvlflKuCnWv8wmoOmYv8cmzTuA/nqNOWwfADPHnZ FB1TT0DrEs/mASPI3E8pWhLaqAekbfS+p3KGDmmCJkNDtU7H/RgToIHCpJlF8O1sfkDMVvyFW 6qPFQel0ET0tvc6I+dzx5ekNr7FWxc8ivc5WXh1Rce9RVUmYsUpCVkKY2HZm7vQNpD0uo4myB DV78+AElm0FAuinJH5n/3i7JMXOs/Ib0QIe4ywsCN1u4b8jND7ofXuDcnFJpSTLFwJGXbiyVM aBERlYA/R4hif0ZQBzLcq1hZlLGBo6XTRlF6zDIL+Qdvl85Z5vmq8710pUY= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.72.192.74 Subject: [Qemu-devel] [PULL 2/4] linux-user: Fix register used for 6th and 7th syscall argument on aarch64 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?q?Guido_G=C3=BCnther?= , Riku Voipio , Laurent Vivier Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Guido Günther This unbreaks the testcase from http://lists.nongnu.org/archive/html/qemu-arm/2018-01/msg00514.html Thanks to Laurent Vivier for spotting the 7th one. Signed-off-by: Guido Günther Tested-by: Philippe Mathieu-Daudé Suggested-by: Laurent Vivier Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Message-Id: <671eaa99f4e0bf3a58f76f9151f7cfa24662227f.1517565566.git.agx@sigxcpu.org> Signed-off-by: Laurent Vivier --- linux-user/host/aarch64/safe-syscall.inc.S | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/linux-user/host/aarch64/safe-syscall.inc.S b/linux-user/host/aarch64/safe-syscall.inc.S index 58a2329b37..bc1f5a9792 100644 --- a/linux-user/host/aarch64/safe-syscall.inc.S +++ b/linux-user/host/aarch64/safe-syscall.inc.S @@ -36,7 +36,7 @@ safe_syscall_base: * and return the result in x0 * and the syscall instruction needs * x8 == syscall number - * x0 ... x7 == syscall arguments + * x0 ... x6 == syscall arguments * and returns the result in x0 * Shuffle everything around appropriately. */ @@ -47,8 +47,8 @@ safe_syscall_base: mov x2, x4 mov x3, x5 mov x4, x6 - mov x6, x7 - ldr x7, [sp] + mov x5, x7 + ldr x6, [sp] /* This next sequence of code works in conjunction with the * rewind_if_safe_syscall_function(). If a signal is taken From patchwork Tue Feb 20 09:16:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 875442 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zlw4s1HwYz9ryl for ; Tue, 20 Feb 2018 20:17:49 +1100 (AEDT) Received: from localhost ([::1]:54256 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eo43W-0003sh-G7 for incoming@patchwork.ozlabs.org; Tue, 20 Feb 2018 04:17:46 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44559) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eo42k-0003rp-4s for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:16:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eo42i-0005iT-1J for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:16:58 -0500 Received: from mout.kundenserver.de ([217.72.192.74]:56347) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eo42h-0005hC-Nj for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:16:55 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue102 [212.227.15.183]) with ESMTPSA (Nemesis) id 0Lx6wD-1egyQx2VIn-016jH3; Tue, 20 Feb 2018 10:16:46 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Tue, 20 Feb 2018 10:16:39 +0100 Message-Id: <20180220091640.10875-4-laurent@vivier.eu> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180220091640.10875-1-laurent@vivier.eu> References: <20180220091640.10875-1-laurent@vivier.eu> X-Provags-ID: V03:K0:QbmySQqJs4w4N14RqnhxCWEkQdQNq1+GquOnOgNuojk/xmptiy7 9XcflM8Y7a3VH27r0WE9OEEXtycAERcX1H5YgbV8Hh7vGP6ld3RN0YSryGqKxJEdWudwFBc ByCvAqgLM5ham4KrMcrftrg7YOvfjN/6kD9QGKVZYoYJHqE5WBJ2kBeTkhXJEtnM6QRSlgU hrgSijn4LDzz37c+VmqlQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:PyY1w0Jc7zE=:9UhD0vmYTr9Jw821w800D9 woIXTaIxKk37RI72PVWEqluE8dt/TsWen8T/Gtwlba/RphZ97khHe21MYSnSxKg7tFXdmQCg/ CJ6UN0ksmgog7Q8laJClydVN0Mwu1976lQiv9mid3pR//NLO6M6sRVs3dZo6hDYezdOB43o4L w7aqGZEjJUa7wrSSecpEe9/OlYlRV89Vzoaf+yxoXyPyxza8XTjkvWxEgX1tEDBqTiIIHCKFO WWgO4pPHEZaEANBplq4sZuIY0j625E69tiLhJwu/YcHN23JTTqnXYzpJiZUUJ77LwE76PMgh8 MRroRL/1mumphx2AQcDoQRvyluqxXOWzSaBwELoyNEQO6Pf1SRGwtst9k7xpKe3A+YOHSJTB1 4ykpeo4QJC/XcaEfqQcUC5kb6ahuGQsvW5o3a25yclHPC+JjZC4w8Kw4bKHng/0qVS4Y1LEKX 1z1G2R5+hdRQMZYqg5ZIIVSseNwybrtEcTb8IgjEolCzRvP2dV0U+Z/AoHtZw8b8mJ6ab3Pvi fdN/TmrLyP1aGzPhhutu8Esmr7BQq2ZMJDrR9F9LOv1EXriQwWI4Q+OCENr/VbX1t1XNmuWBm lvomi6vBqWJ0aK9P+wAa2PSTXsDoaIK2G828M5MuIJyNz7GHXKIGeYt5qnH1bRLfCZ3quBci7 PNo77VctfU/L4P4LE5zB9ys6vn8a5izYqFwjPNCxFDB2tLKAQMGF0kacbjwSNGpBDd8CztZm3 mCjeCtSPJ1xJ1AFwR3QgtSJ4el0wclBfvknWRg== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 217.72.192.74 Subject: [Qemu-devel] [PULL 3/4] linux-user: Fix sched_getaffinity mask size X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Samuel Thibault , Riku Voipio , Laurent Vivier Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Samuel Thibault We properly computed the capped mask size to be put to the application buffer, but didn't actually used it. Also, we need to return the capped mask size instead of 0 on success. Signed-off-by: Samuel Thibault Reviewed-by: Laurent Vivier Message-Id: <20180211174704.27441-1-samuel.thibault@ens-lyon.org> Signed-off-by: Laurent Vivier --- linux-user/syscall.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index effc3a0881..e24f43c4a2 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -10502,7 +10502,9 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, ret = arg2; } - ret = host_to_target_cpu_mask(mask, mask_size, arg3, arg2); + if (host_to_target_cpu_mask(mask, mask_size, arg3, ret)) { + goto efault; + } } } break; From patchwork Tue Feb 20 09:16:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Vivier X-Patchwork-Id: 875444 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zlw4z4YJ0z9ryl for ; Tue, 20 Feb 2018 20:17:55 +1100 (AEDT) Received: from localhost ([::1]:54259 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eo43d-0003vT-M2 for incoming@patchwork.ozlabs.org; Tue, 20 Feb 2018 04:17:53 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44589) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eo42l-0003sI-MN for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:17:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eo42j-0005jT-5X for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:16:59 -0500 Received: from mout.kundenserver.de ([212.227.17.13]:51647) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eo42i-0005iX-SD for qemu-devel@nongnu.org; Tue, 20 Feb 2018 04:16:57 -0500 Received: from localhost.localdomain ([78.238.229.36]) by mrelayeu.kundenserver.de (mreue102 [212.227.15.183]) with ESMTPSA (Nemesis) id 0M3jhh-1eVz1a0VcH-00rHrR; Tue, 20 Feb 2018 10:16:47 +0100 From: Laurent Vivier To: qemu-devel@nongnu.org Date: Tue, 20 Feb 2018 10:16:40 +0100 Message-Id: <20180220091640.10875-5-laurent@vivier.eu> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180220091640.10875-1-laurent@vivier.eu> References: <20180220091640.10875-1-laurent@vivier.eu> X-Provags-ID: V03:K0:XFskgHX2TKLxtZgojCZfvmZ5bZ5HBeRL9HiOu+SfDPlETIsMbgN ABIdw4m6qTk0I5X2PU4Cp3+FZsyAZXmDphkP/YegVEn9UmeC/mqG6Xg8VhLcAtjsY5QRuWM q7ILfymCFcAMf1IB0UJ6jrI91+vS9El9j2Whad0JuveOnDfG6wOvyUqkLRHFSzMhqnLx9n4 +1o8sSDAYA/PSLbJ+EXIQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:FjS+w5rL9ZM=:pI3ftcqC4ZO52y6NKIaEiD XGEjBZOfaPD6QzzTO/4RRmoKflz1pveCDIRefWxTt52y3Rvep1X5Jj8h0ZYLOI8QSZd1sxiAo P59cqq//qTP4x+5GYHM71ukufSeAxCQtQF3rER1iXsmBw02vGdekL/ALAfvt4cxCV7wwpQC7n nc/eIHkpLKN7xWKyH6DKZHTndSw1CcsaKHFTfBEaj3FbY99prDhrVKAsdyvKHiq8+rZ10T2Lc I6DesXB3RTi/6cxnDoMlDPxoK63Twucc4S+BnYvI96s8o7MpHNipmE1yF9ZUjMAAIdKN1VcPI x+YH9duCMXB/ax7oLa8t2uAKcEyloDXaf35S9yRu7H2fLIDEWRvZKKVhWixPxm5lA2GbWPUnm TwwOQV70aVGrAzM5NbNXnM3ysRpnzQ4M0E/5CjeUbd4rYUrn9w937uGjJNZo7bM1lAJbgs3P3 MQqAllge24Lx/iKlLAktH+gfv4XzHhfbhAFdrhM9BrMS0sXmKopDX3DgOBTg9ez5QL8pG/tJ+ YGIFBzfUXBve6V3Q1swaKjsWBpqLrL0IckPorJwMoJqu5fWVjp7VHsQ2NuaqtrdlmzikfyRCO LYsX/PtjG+E4sZMvssY63X00sjpNpcL70105sgcOtluW/rM1GsSn92gHBLugIDauXY5WqaFop LhcMJoRQLcOHZT+nrOL3OynU+HSM0658bJyhM3p4oHXrtCy++ZbE1X5tELiFKaI5Bpk94u4pW Ehh+Tv59E7bNISoRChGmAja0CvxPO5qanFLS/A== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.17.13 Subject: [Qemu-devel] [PULL 4/4] linux-user: Remove THREAD macro X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Riku Voipio , Laurent Vivier Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Peter Maydell Back when we used to support compiling either with or without NPTL threading library support, we used a macro THREAD which would expand either to nothing (no thread support) or to __thread (threads supported). For a long time now we have required thread support, so remove the macro and just use __thread directly as other parts of QEMU do. Signed-off-by: Peter Maydell Reviewed-by: Laurent Vivier Reviewed-by: Richard Henderson Message-Id: <20180213132246.26844-1-peter.maydell@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/main.c | 2 +- linux-user/qemu.h | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/linux-user/main.c b/linux-user/main.c index 7de0e02487..fd7900628b 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -3835,7 +3835,7 @@ void cpu_loop(CPUHPPAState *env) #endif /* TARGET_HPPA */ -THREAD CPUState *thread_cpu; +__thread CPUState *thread_cpu; bool qemu_cpu_is_self(CPUState *cpu) { diff --git a/linux-user/qemu.h b/linux-user/qemu.h index 4edd7d0c08..bc4bf35036 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -18,8 +18,6 @@ #include "exec/gdbstub.h" #include "qemu/queue.h" -#define THREAD __thread - /* This is the size of the host kernel's sigset_t, needed where we make * direct system calls that take a sigset_t pointer and a size. */ @@ -201,7 +199,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, abi_long arg5, abi_long arg6, abi_long arg7, abi_long arg8); void gemu_log(const char *fmt, ...) GCC_FMT_ATTR(1, 2); -extern THREAD CPUState *thread_cpu; +extern __thread CPUState *thread_cpu; void cpu_loop(CPUArchState *env); const char *target_strerror(int err); int get_osversion(void);