From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317057; cv=none; d=zohomail.com; s=zohoarc; b=BwveaXNVbjQCcJVXaPFRaDJLQL0ACJxAkhZcnV2qW57PXFdZ6F4rMkf2fKpPa11DMyMDhPz/YI6N9rDUs33hu80ilFDdSnUKQEGhyWjciYGuAlhoMu6rKmQsXUXpeWJ2cVxlkpelT+c9qekdPxP4K6uIRyQ+NlyPygr+2ukjCnU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317057; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=tBYRQbt6xPcCME+W6J9kE+VbYAyyaGboYaEyRvAIKHI=; b=HC9tdQXBll/2cRwCMOZsJjVt7+04x/shXr30APUm0fL5EatJjw3be6XsVzX+coIsd7HgaZFbDm8eR8VMhNjPF27ksdDRDT5F9FkKHDpPQjuoknWWVOAH/8DFBx5LGMVYzacyA3ERRZLgGOnbCKckZWcIx8qBs95qeRah+vbhvgk= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 162131705747616.864117870059317; Mon, 17 May 2021 22:50:57 -0700 (PDT) Received: from localhost ([::1]:38376 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisd6-00026D-7A for importer@patchew.org; Tue, 18 May 2021 01:50:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38420) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKY-00074U-J2 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:46 -0400 Received: from mout.kundenserver.de ([217.72.192.74]:57357) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKV-000703-HA for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:46 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MxEYY-1lXw9E3mTg-00xeb3; Tue, 18 May 2021 07:31:33 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 01/59] linux-user: Remove dead code Date: Tue, 18 May 2021 07:30:33 +0200 Message-Id: <20210518053131.87212-2-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:Ip1ZvOtP7xYEkSpHNWbooJeYLch8ubTt5WoARl2WMWJghYvkco4 Ls9GjwxUlH9AgHTrbgTm/0KXy8CF63VuxxS/Jw4nbaWU84aQYPoqCGC6ParS6hLI+e3X0vN GMsdLDpY0G23mdLXHSiZ444Aqbvl86e0xcqfxISmK1voKgiPkt4M6PbiBo3dS6BHdtRnmdB EXJOhj+7nRhMicYc9VyJQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:hoKxoXimWq0=:HAfNzhPDDPW0JssiBVNDXV t6LtbipFMDrGe5AwjcE14jtKN4RWq51AOOMqc5SXFd6NvUjNNSQfvAZQJy+QbqBARSvvLRgqC 7J4dwAVzocw6A+AcrcMImqfGRpHpzEYLZQ1sNSWX7ZSa/7joQzQrSm2jgjm/ynxZcIv0uoer+ M54qEC2DTZkMoziot/zd59hBmYT8+mOqdHy1djYeJqAyOsNEfsaPBzRlSThtF0CQ/DfpLCHrU A5kZvdfAU2ApRFcJwX+qwaFv8eCz9bymJSlBbqvm7H7E4G4S4d9Zx2Sln08GgKm1BY4g4ztZC gzCVnzqAJ802UHt3R4Cr9UagX+CkQzUgf9SKcDsrPOfrzEm/KfZ1B4t7Pb6fj0LLYMLEzYgcD pJp8uvWQgoZPe21RQDTCMN6Y32GpKwvsxFir8TOTS9pVkuRP5DSD6+vL0EhFp6jRvThflL2LA tR5pWAZOEaXY4cqQNC2QXquoSnGeEWytutC73F6/H7zDdHhFxF11hEqNktx1E3jRhwzw8l/eE ASWKulNMh30BYldN64yo30= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=217.72.192.74; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Laurent Vivier , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" From: Philippe Mathieu-Daud=C3=A9 We can not use watchpoints in user-mode emulation because we need the softmmu slow path to detect accesses to watchpointed memory. This code is expanded as empty stub in "hw/core/cpu.h" anyway, so we can drop it. Reviewed-by: Laurent Vivier Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20210303214708.1727801-18-f4bug@amsat.org> Signed-off-by: Laurent Vivier --- linux-user/main.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/linux-user/main.c b/linux-user/main.c index 7995b6e7a6de..4dfc47ad3b63 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -205,7 +205,6 @@ CPUArchState *cpu_copy(CPUArchState *env) CPUState *new_cpu =3D cpu_create(cpu_type); CPUArchState *new_env =3D new_cpu->env_ptr; CPUBreakpoint *bp; - CPUWatchpoint *wp; =20 /* Reset non arch specific state */ cpu_reset(new_cpu); @@ -217,13 +216,9 @@ CPUArchState *cpu_copy(CPUArchState *env) Note: Once we support ptrace with hw-debug register access, make su= re BP_CPU break/watchpoints are handled correctly on clone. */ QTAILQ_INIT(&new_cpu->breakpoints); - QTAILQ_INIT(&new_cpu->watchpoints); QTAILQ_FOREACH(bp, &cpu->breakpoints, entry) { cpu_breakpoint_insert(new_cpu, bp->pc, bp->flags, NULL); } - QTAILQ_FOREACH(wp, &cpu->watchpoints, entry) { - cpu_watchpoint_insert(new_cpu, wp->vaddr, wp->len, wp->flags, NULL= ); - } =20 return new_env; } --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316216; cv=none; d=zohomail.com; s=zohoarc; b=JAgE0smfSv4awKrpYqMaJFWE0G2KwxXOyXlJ5YShxeETlZ5Iky7n2anKFaZXG4plMfQ5diICH0FX8gHbvVtuEyF+NfNIUJMsiOJopTLNCUKLzuceoKABmdkMFQnUlcPNGfKOo8cvlWn8hnRJA0bBVtAG1nlq/KPelaOUPBbDFJA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316216; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PQeTdvV5uZRwNFGxCmxFfQ4/ZdBTMCVwdNrGk2oZOtE=; b=BmJ4dUDJHDT6jSg+xrC1QzAyn2fWbdWRqe8F6f7dLITzab9bpR6NenvsI5dQPj9u04yCrqPLCKDkAL2oudZFeVYfQeJuAE9IU2ju7W8dFfA5arKNohrwKW2GigQoL6z7lU0XHVUmxvSbH/IYah6KBYx3ted72PwwrEHdCQT/ifQ= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316216938149.6361186030682; Mon, 17 May 2021 22:36:56 -0700 (PDT) Received: from localhost ([::1]:60540 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisPX-00048b-Rt for importer@patchew.org; Tue, 18 May 2021 01:36:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38252) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKR-0006fX-Pi for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:39 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:34073) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKQ-0006rx-1c for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:39 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M6m1g-1lq1Sl1ftm-008J43; Tue, 18 May 2021 07:31:33 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 02/59] linux-user: strace now handles unshare syscall args correctly Date: Tue, 18 May 2021 07:30:34 +0200 Message-Id: <20210518053131.87212-3-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:2ejP3lxhC8GcLOmpXGyxdkjKL+zVCvb111roJaxIWq5zJIObRtk GL4D9ku/UFHHak9+1yYl6yUzZ3BpHmcmbO0f+0Zs6mv7dC478wd/s6Q9krQTLWcRLKUCv1y 2KMo0L7/M0JAsNNDQdJ5DxfjyD1tWgDicP+0R/YfG8BhdVj3HAZlQyXglbREzhXeXLiP343 O8JHt62/WItvToPZkQpxg== X-UI-Out-Filterresults: notjunk:1;V03:K0:laiUJS9aQk8=:X/jB5lnn7WF2Y/8TC4JyvR IjbFDhqWLNq7l5vSFO7RL9+Qvf08N8xx86Mqdt6jgwKFsbUMGqu/pwRXa+cyBRprndXj+1U9+ ntbkwr7pxxLkek/8/OUlEsYVnjy2WTxlG0rn9XddfD1z7iMGIX9/zlvKQj4oZ9YbmTwHRG0Vt vhohTogo1p8vMqqZUk73cQlc58oIe8boznKbPMbzrZfG7Ou0tGu3M1p0rSTSGI+nHq1e9eBpp +TYHnhxcboMWcAWyHYSnV5jfhKPlYANEkLFnSlFHgapG2AKgYk46E9+Dx/QMT2WwuauPgfRoF MBh4zQZ+FKwEiAiCy7kTALgLNzcrtwBOo5CwOHymR3pMczr64dWm7PwyagAL8WUfJNzd16IOs 4/1Vjxq13KALxWcuNOb9fRyQDgTM0Nli0LUJ7WU6wK4xyikaKXcybZC1w7m22gb8vZPjtB2tw 9l4Dyi9or7U9I8QeRXzi3j8KO07e/RrK3/jZQkdTCvxjy6qojCEsPBP6BbgTsNttNJB2CubNA XycPIlFjadBtOySOCWRO+U= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.17.24; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Laurent Vivier , Matus Kysel Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Matus Kysel Syscall unshare did not have custom print function for strace, but it's arg= ument is same as flags in clone syscall, so it can be easily implemented. Also updated missing flags from clone_flags. Signed-off-by: Matus Kysel Reviewed-by: Laurent Vivier Message-Id: <20210406144203.1020598-1-mkysel@tachyum.com> Signed-off-by: Laurent Vivier --- linux-user/strace.c | 18 ++++++++++++++++++ linux-user/strace.list | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/linux-user/strace.c b/linux-user/strace.c index e969121b6cd7..1cadb6d50f2d 100644 --- a/linux-user/strace.c +++ b/linux-user/strace.c @@ -1109,6 +1109,12 @@ UNUSED static struct flags clone_flags[] =3D { #if defined(CLONE_NEWNET) FLAG_GENERIC(CLONE_NEWNET), #endif +#if defined(CLONE_NEWCGROUP) + FLAG_GENERIC(CLONE_NEWCGROUP), +#endif +#if defined(CLONE_NEWTIME) + FLAG_GENERIC(CLONE_NEWTIME), +#endif #if defined(CLONE_IO) FLAG_GENERIC(CLONE_IO), #endif @@ -3467,6 +3473,18 @@ print_unlinkat(void *cpu_env, const struct syscallna= me *name, } #endif =20 +#ifdef TARGET_NR_unshare +static void +print_unshare(void *cpu_env, const struct syscallname *name, + abi_long arg0, abi_long arg1, abi_long arg2, + abi_long arg3, abi_long arg4, abi_long arg5) +{ + print_syscall_prologue(name); + print_flags(clone_flags, arg0, 1); + print_syscall_epilogue(name); +} +#endif + #ifdef TARGET_NR_utime static void print_utime(void *cpu_env, const struct syscallname *name, diff --git a/linux-user/strace.list b/linux-user/strace.list index 084048ab96dd..3b7c15578ca4 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -1573,7 +1573,7 @@ { TARGET_NR_unlinkat, "unlinkat" , NULL, print_unlinkat, NULL }, #endif #ifdef TARGET_NR_unshare -{ TARGET_NR_unshare, "unshare" , NULL, NULL, NULL }, +{ TARGET_NR_unshare, "unshare" , NULL, print_unshare, NULL }, #endif #ifdef TARGET_NR_userfaultfd { TARGET_NR_userfaultfd, "userfaultfd" , NULL, NULL, NULL }, --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316099; cv=none; d=zohomail.com; s=zohoarc; b=WlvlnISJGySSgoFf3PF44WvmxNOwNOt5MsKSUzHQYeLQ9kA3h7VL9MZPckQD+KSeR7/it4p3E/WM3ANisyUW/vXrj5kGzvz8BA8Gl+u2vveybUdCwuCrwykbbpGRediniJ/w0WWTirRSR8KDeawlzquAfm4YiEow1r9zFhbXlKM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316099; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/KbYqd4K0GAHMMhBrbt93yPgJkMVyahSLQQqbjpDtyQ=; b=mo1TMbI82wkccc3Fte7NiHs2AWuX8kEfnh9JhQJNqz4Wu21NlMdmIgMuioITO8GwPO+jwe+QgPRgYNiahdIz75rkRgUJJshPe9Ao9cTdd5b4zF3dAitq6w1mbCq3zaAwfIhPPez5UzzZlpRpevy4kyQ0Qzv0EcLKFB8a0w0XaeA= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316099870685.4935059533996; Mon, 17 May 2021 22:34:59 -0700 (PDT) Received: from localhost ([::1]:51962 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisNe-0006pP-SP for importer@patchew.org; Tue, 18 May 2021 01:34:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38222) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKR-0006eJ-0H for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:39 -0400 Received: from mout.kundenserver.de ([217.72.192.75]:42215) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKO-0006pm-0S for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:38 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1Mk178-1l3G6n3jnk-00kKmn; Tue, 18 May 2021 07:31:34 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 03/59] linux-user/arm: Split out emulate_arm_fpa11 Date: Tue, 18 May 2021 07:30:35 +0200 Message-Id: <20210518053131.87212-4-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:1Tw5RwhX65xUtanJL7lMepIhmcLRDc4JczHhiGsOnKOMeKKNJdH gzn4zkFqwcx//io4O41vkee2DlYSrxL5VieQGpLWUjO5Vc5p7bqAIM85HxY5gJq5mlEvhBa 8zONab+u2ZLTpK6scAjOs7yW4HgKwvj0VlKE5vS+sB3wT9r7ZzkFaQkp8v7VzKFCUoivaHb xUetbFqctBtiMHYEyf34w== X-UI-Out-Filterresults: notjunk:1;V03:K0:ijddHn25e7c=:Vsvgtw+7w4TXA+e86U2Avp tAJQPFS43083PwZOLOOaQR6E3RhCoYZpJavZ61VjJiXPh5cIU/TSiGL2a//kME9UGSDXDpcIg siTWnhiF1hVuh9V9njZXqSEavyBBG6yXE3sMcon56tLXcKvjHzVQQYtAuJR9UhHy1bauNkhJV oTokT8iuA1ioLzMnHjTZMwFtJhNfsWtxIeobAxSDs5VsYSuVRTqH1MZYX+dCUiQTWvD1d4GE4 RnE0SqYP58Y2m1pRgS+hWgivjyvI8elTAZKuxUySFXKigZK4DQKuL5fX7ajZJrMkjPWnNAQZ/ uqwzghrhKVe1ubrQ7m+uMDO87jXXgPUiL9nvI2KrmrqjfKInoABrssQQ1Ca1sXBY8oDzJ8oiA smoJxS7jdW+pJ7AGKGA/lpT6OTcVjvslNKwx6gvsWw7K3EKTmiJjuHAWiILudx/gWAXpi0Emr ypfUOrG9JWJhnAhw6rQ971yRZb6VT2AWfRLWUBhDG7SKp29zfZheH58LCCFcCI6OvKyOYTQ/t ZdTLrO6tA2EOrg8O5Q07To= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=217.72.192.75; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Pull out the fpa11 emulation to a helper function. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell Message-Id: <20210423165413.338259-2-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/arm/cpu_loop.c | 153 +++++++++++++++++++++++--------------- 1 file changed, 94 insertions(+), 59 deletions(-) diff --git a/linux-user/arm/cpu_loop.c b/linux-user/arm/cpu_loop.c index 989d03cd89d8..106909c7d880 100644 --- a/linux-user/arm/cpu_loop.c +++ b/linux-user/arm/cpu_loop.c @@ -224,6 +224,92 @@ static bool insn_is_linux_bkpt(uint32_t opcode, bool i= s_thumb) } } =20 +static bool emulate_arm_fpa11(CPUARMState *env, uint32_t opcode) +{ + TaskState *ts =3D env_cpu(env)->opaque; + int rc =3D EmulateAll(opcode, &ts->fpa, env); + + if (rc =3D=3D 0) { + /* Illegal instruction */ + return false; + } + if (rc > 0) { + /* Everything ok. */ + env->regs[15] +=3D 4; + return true; + } + + /* FP exception */ + int arm_fpe =3D 0; + + /* Translate softfloat flags to FPSR flags */ + if (-rc & float_flag_invalid) { + arm_fpe |=3D BIT_IOC; + } + if (-rc & float_flag_divbyzero) { + arm_fpe |=3D BIT_DZC; + } + if (-rc & float_flag_overflow) { + arm_fpe |=3D BIT_OFC; + } + if (-rc & float_flag_underflow) { + arm_fpe |=3D BIT_UFC; + } + if (-rc & float_flag_inexact) { + arm_fpe |=3D BIT_IXC; + } + + /* Exception enabled? */ + FPSR fpsr =3D ts->fpa.fpsr; + if (fpsr & (arm_fpe << 16)) { + target_siginfo_t info; + + info.si_signo =3D TARGET_SIGFPE; + info.si_errno =3D 0; + + /* ordered by priority, least first */ + if (arm_fpe & BIT_IXC) { + info.si_code =3D TARGET_FPE_FLTRES; + } + if (arm_fpe & BIT_UFC) { + info.si_code =3D TARGET_FPE_FLTUND; + } + if (arm_fpe & BIT_OFC) { + info.si_code =3D TARGET_FPE_FLTOVF; + } + if (arm_fpe & BIT_DZC) { + info.si_code =3D TARGET_FPE_FLTDIV; + } + if (arm_fpe & BIT_IOC) { + info.si_code =3D TARGET_FPE_FLTINV; + } + + info._sifields._sigfault._addr =3D env->regs[15]; + queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); + } else { + env->regs[15] +=3D 4; + } + + /* Accumulate unenabled exceptions */ + if ((!(fpsr & BIT_IXE)) && (arm_fpe & BIT_IXC)) { + fpsr |=3D BIT_IXC; + } + if ((!(fpsr & BIT_UFE)) && (arm_fpe & BIT_UFC)) { + fpsr |=3D BIT_UFC; + } + if ((!(fpsr & BIT_OFE)) && (arm_fpe & BIT_OFC)) { + fpsr |=3D BIT_OFC; + } + if ((!(fpsr & BIT_DZE)) && (arm_fpe & BIT_DZC)) { + fpsr |=3D BIT_DZC; + } + if ((!(fpsr & BIT_IOE)) && (arm_fpe & BIT_IOC)) { + fpsr |=3D BIT_IOC; + } + ts->fpa.fpsr =3D fpsr; + return true; +} + void cpu_loop(CPUARMState *env) { CPUState *cs =3D env_cpu(env); @@ -244,9 +330,7 @@ void cpu_loop(CPUARMState *env) case EXCP_NOCP: case EXCP_INVSTATE: { - TaskState *ts =3D cs->opaque; uint32_t opcode; - int rc; =20 /* we handle the FPU emulation here, as Linux */ /* we get the opcode */ @@ -263,64 +347,15 @@ void cpu_loop(CPUARMState *env) goto excp_debug; } =20 - rc =3D EmulateAll(opcode, &ts->fpa, env); - if (rc =3D=3D 0) { /* illegal instruction */ - info.si_signo =3D TARGET_SIGILL; - info.si_errno =3D 0; - info.si_code =3D TARGET_ILL_ILLOPN; - info._sifields._sigfault._addr =3D env->regs[15]; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); - } else if (rc < 0) { /* FP exception */ - int arm_fpe=3D0; - - /* translate softfloat flags to FPSR flags */ - if (-rc & float_flag_invalid) - arm_fpe |=3D BIT_IOC; - if (-rc & float_flag_divbyzero) - arm_fpe |=3D BIT_DZC; - if (-rc & float_flag_overflow) - arm_fpe |=3D BIT_OFC; - if (-rc & float_flag_underflow) - arm_fpe |=3D BIT_UFC; - if (-rc & float_flag_inexact) - arm_fpe |=3D BIT_IXC; - - FPSR fpsr =3D ts->fpa.fpsr; - //printf("fpsr 0x%x, arm_fpe 0x%x\n",fpsr,arm_fpe); - - if (fpsr & (arm_fpe << 16)) { /* exception enabled? */ - info.si_signo =3D TARGET_SIGFPE; - info.si_errno =3D 0; - - /* ordered by priority, least first */ - if (arm_fpe & BIT_IXC) info.si_code =3D TARGET_FPE_F= LTRES; - if (arm_fpe & BIT_UFC) info.si_code =3D TARGET_FPE_F= LTUND; - if (arm_fpe & BIT_OFC) info.si_code =3D TARGET_FPE_F= LTOVF; - if (arm_fpe & BIT_DZC) info.si_code =3D TARGET_FPE_F= LTDIV; - if (arm_fpe & BIT_IOC) info.si_code =3D TARGET_FPE_F= LTINV; - - info._sifields._sigfault._addr =3D env->regs[15]; - queue_signal(env, info.si_signo, QEMU_SI_FAULT, &inf= o); - } else { - env->regs[15] +=3D 4; - } - - /* accumulate unenabled exceptions */ - if ((!(fpsr & BIT_IXE)) && (arm_fpe & BIT_IXC)) - fpsr |=3D BIT_IXC; - if ((!(fpsr & BIT_UFE)) && (arm_fpe & BIT_UFC)) - fpsr |=3D BIT_UFC; - if ((!(fpsr & BIT_OFE)) && (arm_fpe & BIT_OFC)) - fpsr |=3D BIT_OFC; - if ((!(fpsr & BIT_DZE)) && (arm_fpe & BIT_DZC)) - fpsr |=3D BIT_DZC; - if ((!(fpsr & BIT_IOE)) && (arm_fpe & BIT_IOC)) - fpsr |=3D BIT_IOC; - ts->fpa.fpsr=3Dfpsr; - } else { /* everything OK */ - /* increment PC */ - env->regs[15] +=3D 4; + if (emulate_arm_fpa11(env, opcode)) { + break; } + + info.si_signo =3D TARGET_SIGILL; + info.si_errno =3D 0; + info.si_code =3D TARGET_ILL_ILLOPN; + info._sifields._sigfault._addr =3D env->regs[15]; + queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); } break; case EXCP_SWI: --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621315978; cv=none; d=zohomail.com; s=zohoarc; b=QjZ+XLvJysXkaBnj9w+z8fkbpOt27zpKDxtJ5etqu0Q47+D1h/lk5BVJAiEn8W5ekcUlGH4Hbz3+mAsAdEcFY23wiOlQ8JgXdIIRAfFgerMae76BB0mXZQLbhS1p+I9oKbvaCcVkI4fona8BJ2ynyeZ3yFoLLtdVREWTOZ/EL8c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621315978; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EUyuP9k8Q3Q3Q42KyC1NZZ/MAhyG0Df1OfgfvPgi4+k=; b=ksDczdPKb/utfWbNBF8SuqaWUojRq7aC49O2gCDw7rRWVcywkOGlTFUAglbzEfLTEHzpGfafe/2TpoGJ3LjVWhfGlYQ6EtVnAx941QG6td5awL8f1N0FcJ0Rol7kHNmIHj6F7e1qjcsWpNso/X2vs++S7xuEbH0KtSyv5jl/Vjg= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621315978652849.267031178101; Mon, 17 May 2021 22:32:58 -0700 (PDT) Received: from localhost ([::1]:43480 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisLh-0001CV-AA for importer@patchew.org; Tue, 18 May 2021 01:32:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38198) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKQ-0006dx-EG for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:38 -0400 Received: from mout.kundenserver.de ([217.72.192.75]:46965) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKO-0006qC-QV for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:38 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M5xDJ-1lodsz1hQh-007TiU; Tue, 18 May 2021 07:31:34 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 04/59] linux-user/arm: Do not emulate fpa11 in thumb mode Date: Tue, 18 May 2021 07:30:36 +0200 Message-Id: <20210518053131.87212-5-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:/UzUKa42WJDV8CABAfIcmjoBrnLxVJyvB4NSCtycYEbpsVwVhqM Zc0MWUdsk51xpHsIlaeC3a2VaPcZuQVk9mG7nO1ka06Yp1Ydn2PnELWz1Dje1XIzJa9ANCz RG+PxdGHfqp5+0q0JlEqcaysMI/S1cfnnOj1gehx2AM9chJvS90fWQ+JtqouvWQ2viOXpAQ MwstO16PUwDt57Lyj73FA== X-UI-Out-Filterresults: notjunk:1;V03:K0:Rk2P157s19Y=:U5BSHc2T/biMOQpEdAf0pa K6MbBJqdzyloxyrl6prLXSHW5nR8KHHt6r0E4BuxGXaz10JfVFvoQLlnbngluxzb8iqd0mv5O zcGRhmWXuqRl/oo5wAuMSY2b1AqwmNmbQriqQn3Vngt0VK4wqfnwOzXBF5SGvCWem8D+Wudqr 75mdcjqP1phsFms/KZ95kh3TU1hCAuVwzZrTtKu6vbB+eOQTfmEThqXXka/wn8kTDWOxqwTNi xUr0elv4oDaF6Uxr9fuqyOJ+fpZsOHt3Bu8IrsEHwj3afMojwIXNmesyLhrS9Vz3a6EFiSvz0 CMlQVdKn2CDoyAxKCcBOVGWHkXFcw7dMTMOl9xbyFaLOODspGmiT6rcgvAI+j6WSx3kc/dxdP fnfsoUU5SKwjO8G+y3SL3mCqsptw4KerieQuPHRJatssaXnDvodiGuxF9T24/MTX4hL7j0l7R MHB2nhcEtSscmybbt2FZaL6xYLKff9SxStIQ6Kcq+Xs4E+hczQcoIu4Pe9jOLcxGHCD9XXIMt dXrJ4jW/eefwedW90G5SnQ= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=217.72.192.75; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson These antiquated instructions are arm-mode only. Buglink: https://bugs.launchpad.net/bugs/1925512 Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell Message-Id: <20210423165413.338259-3-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/arm/cpu_loop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/arm/cpu_loop.c b/linux-user/arm/cpu_loop.c index 106909c7d880..e2a1496b9fe7 100644 --- a/linux-user/arm/cpu_loop.c +++ b/linux-user/arm/cpu_loop.c @@ -347,7 +347,7 @@ void cpu_loop(CPUARMState *env) goto excp_debug; } =20 - if (emulate_arm_fpa11(env, opcode)) { + if (!env->thumb && emulate_arm_fpa11(env, opcode)) { break; } =20 --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621315980; cv=none; d=zohomail.com; s=zohoarc; b=GHecm/YQ95rJwhr/kh3j1F/c5jRGlygAli72uvkTsvYeEhIFGnVh6j/OPA9YXss6VRL3TV4G16XSPs1JWX79OyStG85lkdSmYH0cgAgXHUmowqdI1LamtI+kvTViEV+fLnah1hyhLLQxcO0Hl0u9zwG34HAeXd5rTdCuv/xqpTQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621315980; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Gwtu2bwOjeV8nx3q69g5zVj7qdW0SsuFeyNbW1BIYQo=; b=IiSa2BYmNxFfHu2UOfJ1ePYxfKH4Fd5M0PWrv1wpF+JeyIAYIAYM/dzzmrCOXn9oJH7OVbChgc0AT5JNhyuYI2/p9wGYFXaL5SY2I6IKxTh1gPi4wfPbrWtZjl79Sr8X6xySanRwEcBJJFnG8go5M9Kac7IsZnarPqFdyj20ZoQ= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621315980135439.4877397502544; Mon, 17 May 2021 22:33:00 -0700 (PDT) Received: from localhost ([::1]:43648 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisLi-0001In-Tk for importer@patchew.org; Tue, 18 May 2021 01:32:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38244) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKR-0006fL-Kl for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:39 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:38281) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKP-0006rY-85 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:39 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M27ix-1lko8d3fxp-002Vdo; Tue, 18 May 2021 07:31:35 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 05/59] linux-user/arm: Do not fill in si_code for fpa11 exceptions Date: Tue, 18 May 2021 07:30:37 +0200 Message-Id: <20210518053131.87212-6-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:5D98tTpusNVYKwgF/UlPpY4Q7yRnTsGkIxu0I/TyQXiSoN6Vqan M3pXP2zd+Fn+s6PLdCoINwpfYtB4QikbU/NUioGAAlEmfhAaplq+icpkJSkwPucRYsOkEwC 7Bd60NVvYqZFj6BWWg3fphjsU6Of2FhILwjJ2f+2VVDJDSm8kvq5pZJmLpz14emWai53dVR Uwk27wUbx6+pp+ejddy3A== X-UI-Out-Filterresults: notjunk:1;V03:K0:wK/v6X9ir5k=:apC3rRfzW1AL9gpKZniGYg tH4SXtAQjUJpwH7gn4xm5PtzRp8E6/HWeHC4eFLiLNEJASk087wrg9EHNo+Vk82jhWwICZoQk tvP7v1lCr26sSxwQjmgsNEby4BYpAltq0PqltLKx39mPGEiBtoLXpSRqEEUH2KuQI5ACcMYwL En6K7E/TLqdZG1eI47oDAC/WfQTeHUiKtJ2MityP2HFb4LtLQ0Ye4ZcIIeMqo/7S2Wrzf+3n8 vC27kuIhYRTQ1bKFhdZZ1/WLB6zdO2ch1f84c5qc6PJwm4gfDOLGYs0Kty9BsV9lhN4N4h+y8 0sbEbKW0OrsOQZDHvX4rajR8doX0MQreGdUyW5LI4OZtYgLTWoIBJb2eGryZQ49VJNSDl/GMn KJJsp+bFDzRHBcSVg+3TtFBu/l7JrVV2JVDuLqCJ4hlDB4s35UOSHZ8WuljpCop27GwOfy0jS F8d+t9UxCHucR3XepF/JpJIC4IWc3M02f4b8ZVa2omPYvIApfPGlLmTS5Wfxq1Jq9Bd2FI9/l alELUjnKOrfSM2XD5esgew= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.17.10; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson There is no such decoding in linux/arch/arm/nwfpe/fpmodule.c. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell Message-Id: <20210423165413.338259-4-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/arm/cpu_loop.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/linux-user/arm/cpu_loop.c b/linux-user/arm/cpu_loop.c index e2a1496b9fe7..5f61d25717c3 100644 --- a/linux-user/arm/cpu_loop.c +++ b/linux-user/arm/cpu_loop.c @@ -262,29 +262,15 @@ static bool emulate_arm_fpa11(CPUARMState *env, uint3= 2_t opcode) /* Exception enabled? */ FPSR fpsr =3D ts->fpa.fpsr; if (fpsr & (arm_fpe << 16)) { - target_siginfo_t info; + target_siginfo_t info =3D { }; =20 + /* + * The kernel's nwfpe emulator does not pass a real si_code. + * It merely uses send_sig(SIGFPE, current, 1). + */ info.si_signo =3D TARGET_SIGFPE; - info.si_errno =3D 0; - - /* ordered by priority, least first */ - if (arm_fpe & BIT_IXC) { - info.si_code =3D TARGET_FPE_FLTRES; - } - if (arm_fpe & BIT_UFC) { - info.si_code =3D TARGET_FPE_FLTUND; - } - if (arm_fpe & BIT_OFC) { - info.si_code =3D TARGET_FPE_FLTOVF; - } - if (arm_fpe & BIT_DZC) { - info.si_code =3D TARGET_FPE_FLTDIV; - } - if (arm_fpe & BIT_IOC) { - info.si_code =3D TARGET_FPE_FLTINV; - } + info.si_code =3D TARGET_SI_KERNEL; =20 - info._sifields._sigfault._addr =3D env->regs[15]; queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); } else { env->regs[15] +=3D 4; --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316221; cv=none; d=zohomail.com; s=zohoarc; b=MupMnJUKFIklhhtc2+YawfZVVacDKFWEpHxauhPAKSOvUsZ437TOOvb9AoAA9LgejoVW1cWHrWe3zwU5OxcTTwx2KNf29pAcg3z1oNdnflINY6Ym9MTioFhps+b45aMMpP72iR4gZltSHEkCYSvCREFbdgK4326HUXKS4ruNnf4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316221; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jbdI/CHaHgWq/cOVm0TK8wMMliI9NiY7E7zqifqtDpU=; b=DSl8AduxFrWNd8n0oal8niGFRd32QkGMWzgn9X5iu4iG7hJFrgEbuKbccL89fEn3SwwVdfPeugoRvhxBZE5cL3e/CKiuMmayqFEXUQOyYSVQZ9roOXkjf8dDcb5BBrYZynV0NRjpGJQyWkFELqAGNOy2U/jnJtN4ITov8LTgry4= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316221608230.59633034192643; Mon, 17 May 2021 22:37:01 -0700 (PDT) Received: from localhost ([::1]:60778 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisPc-0004I2-Gi for importer@patchew.org; Tue, 18 May 2021 01:37:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38318) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKU-0006mg-5j for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:42 -0400 Received: from mout.kundenserver.de ([217.72.192.75]:58825) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKP-0006re-C6 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:41 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MNLVU-1m6Rsz1av4-00Os0h; Tue, 18 May 2021 07:31:35 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 06/59] linux-user/arm: Simplify accumulating and raising fpa11 exceptions Date: Tue, 18 May 2021 07:30:38 +0200 Message-Id: <20210518053131.87212-7-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:hPsgTGe4wD6egtnSMmt+wXOoApQ3tO5BCWo5A7PBwoYdqj+E2TL JpsDNYzain8Lk7UX/3LUJ0cFVO4c2g8qK+ADKLwBh9oSspISQjdgesU08WKeIdEYHo7PEzX uV/+DxcPj61Fu0NLJje/FQuC+QlTar26kPiu5xjl/Tb2LzZPb3vyhpIC55CSQOmQj5cKYTe oZryk2diDDH5zMU1TNb4g== X-UI-Out-Filterresults: notjunk:1;V03:K0:g0lQq33wMK8=:tr9ja6j6Cbg5Tl0tc05Sn3 6Cmyun+gra9MPkfaNIVBaaciuUy30dtL9ZUKWEIOH4uEYYuBoJHhpQN7OXFTCIpRjPawJipJp Nq/NAxl7KTcbeUfvg8EDdCYGOfntFmYUCN5oxqaGtkzTOKIrIzdpJDyMoQNLPACLi85O7tR+c rirj01TzF+mybadITyFpRb5eVB7T7hyZ5Zw61r+dBfAcmEU9UsmDDjHW+hxNy7otuVIds3RUh HGpaO1v6roSI7p6n54SGOwlj7HjaUmZUp2J1QxvXlDljzT2MlTh8UBrzN/Snvae2ndhagebLG klbTgTdnhEQijB+QPqtEchntbi3jIB4pB9vDY9mD51ruLYKab4BidTasgKhOXhR2RnPtcdVH2 wNq+YpJyD3w74/evoSwCKX8P28m83AF85Z2u/xl3p00qk+fpMJKWYcMpw6icSskZKeDpIZbj3 q37lpZkJ3pZGx2djvrzhW5hwT8b57nIG/PSfgZDJflaUM5lTehM3KMJXR6S+4smFhPjpILOaj gdHWcS3I+HYHvZSBT4tKAs= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=217.72.192.75; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Use bit masking instead of an if tree. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell Message-Id: <20210423165413.338259-5-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/arm/cpu_loop.c | 50 ++++++++++++++------------------------- 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/linux-user/arm/cpu_loop.c b/linux-user/arm/cpu_loop.c index 5f61d25717c3..69632d15be18 100644 --- a/linux-user/arm/cpu_loop.c +++ b/linux-user/arm/cpu_loop.c @@ -228,6 +228,7 @@ static bool emulate_arm_fpa11(CPUARMState *env, uint32_= t opcode) { TaskState *ts =3D env_cpu(env)->opaque; int rc =3D EmulateAll(opcode, &ts->fpa, env); + int raise, enabled; =20 if (rc =3D=3D 0) { /* Illegal instruction */ @@ -240,28 +241,31 @@ static bool emulate_arm_fpa11(CPUARMState *env, uint3= 2_t opcode) } =20 /* FP exception */ - int arm_fpe =3D 0; + rc =3D -rc; + raise =3D 0; =20 /* Translate softfloat flags to FPSR flags */ - if (-rc & float_flag_invalid) { - arm_fpe |=3D BIT_IOC; + if (rc & float_flag_invalid) { + raise |=3D BIT_IOC; } - if (-rc & float_flag_divbyzero) { - arm_fpe |=3D BIT_DZC; + if (rc & float_flag_divbyzero) { + raise |=3D BIT_DZC; } - if (-rc & float_flag_overflow) { - arm_fpe |=3D BIT_OFC; + if (rc & float_flag_overflow) { + raise |=3D BIT_OFC; } - if (-rc & float_flag_underflow) { - arm_fpe |=3D BIT_UFC; + if (rc & float_flag_underflow) { + raise |=3D BIT_UFC; } - if (-rc & float_flag_inexact) { - arm_fpe |=3D BIT_IXC; + if (rc & float_flag_inexact) { + raise |=3D BIT_IXC; } =20 - /* Exception enabled? */ - FPSR fpsr =3D ts->fpa.fpsr; - if (fpsr & (arm_fpe << 16)) { + /* Accumulate unenabled exceptions */ + enabled =3D ts->fpa.fpsr >> 16; + ts->fpa.fpsr |=3D raise & ~enabled; + + if (raise & enabled) { target_siginfo_t info =3D { }; =20 /* @@ -275,24 +279,6 @@ static bool emulate_arm_fpa11(CPUARMState *env, uint32= _t opcode) } else { env->regs[15] +=3D 4; } - - /* Accumulate unenabled exceptions */ - if ((!(fpsr & BIT_IXE)) && (arm_fpe & BIT_IXC)) { - fpsr |=3D BIT_IXC; - } - if ((!(fpsr & BIT_UFE)) && (arm_fpe & BIT_UFC)) { - fpsr |=3D BIT_UFC; - } - if ((!(fpsr & BIT_OFE)) && (arm_fpe & BIT_OFC)) { - fpsr |=3D BIT_OFC; - } - if ((!(fpsr & BIT_DZE)) && (arm_fpe & BIT_DZC)) { - fpsr |=3D BIT_DZC; - } - if ((!(fpsr & BIT_IOE)) && (arm_fpe & BIT_IOC)) { - fpsr |=3D BIT_IOC; - } - ts->fpa.fpsr =3D fpsr; return true; } =20 --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621315980; cv=none; d=zohomail.com; s=zohoarc; b=eTBsh952LvWEBW4WNGMtnRASAC4aM9lQ1//tYcb7Du180rtS/BK+TQk5dWUKfls7rPuI9DxpKK2WIwOAUKpEa+UBhlXjIAdXExq/mL2W9ULQzcrbEEEVCGYynl/qLq2czZJHzTT2oPZ5h8C4V6DNbaKxVqvlaYKdkOSZmapD0mw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621315980; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=uZU1Eu1hmf+iCpLhCOijIoSzIibz3j//xWvnXU4+l/Y=; b=TzErZjw6V+BXkBkNlL0X/9LCN7l8ekJBl/NWZgZ4v61wLFInTebm7Qvn/2vl/ZiptlX5Typg3Gldcd9JSdCwoS3L2u9BaqE1rcQfOwpP8YIn9L1lt+sEFw5IDp29aFBuzWvGkY9YNBA7Ty7Lr1h49uMdwURpw2nCjF6RQihwi60= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621315980152460.10957946687836; Mon, 17 May 2021 22:33:00 -0700 (PDT) Received: from localhost ([::1]:43636 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisLi-0001IH-Ts for importer@patchew.org; Tue, 18 May 2021 01:32:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38262) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKS-0006gI-5c for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:40 -0400 Received: from mout.kundenserver.de ([217.72.192.74]:56729) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKQ-0006sP-Et for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:39 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1Mo7if-1l6ok03Z9P-00pZyc; Tue, 18 May 2021 07:31:36 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 07/59] linux-user: Add strace support for printing arguments of llseek Date: Tue, 18 May 2021 07:30:39 +0200 Message-Id: <20210518053131.87212-8-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:EuJDEBF+kdnzFWYJGjKs3sUc/+x7nNLwHSGaRsn5RFvaETp2xRM MSbFWcvOSxHzvt8kyMaTarv2+LYYqk1VjbVq3YjiEwE7rWKqOK6Nr15dstDwJyiqUbnLG+D /CeghepaZEjCj+1Gpq59MtR+imu4nC5G6Gi672Kk90Oujt3d3Y4KYkNmtd9LfxzvOeDjutu okWv2gaS9f6F78il+wvVA== X-UI-Out-Filterresults: notjunk:1;V03:K0:KmLstp49MEw=:q6SnvdeoaT49IfHXyy0mF+ lgqaD8VJVDJs4Et5svBskrrlVW+FQ0vCXvy5H5AY/qN1MB/kTkbF9RjtLSk6xnLhX++hOh7Rn GPmZX+PNPLkKbQRVaMmShxkqVdQLZdor3FgvicVoKuY3HNqnjLkWHTPazTxwFzw7KpbtD8bkn oeV159Wh92mNKaeKyM9hvP+C6zWIzDL8cz8iwhS+gfVKpAQzGoriNZt1yGXTWVM3xl6HflCuJ zCl88ev7Qjou4X1JL4Z9vxSy8sMAWv3u12Ej8OAknB8gttUlojUgnpRTBW3avUyK/0IUfDTZo 1MOW2Yvc9ATM35MoLFdswY1CvqPU0BMbCXm+zsOw3muqg7QMhreFR9x+qgk/au9VQDpUR1jRX s83VwsQv8aemmA2nxu/kwqzv3WtMjsFr22yv+NVydJJ+TSwDR1hURMF9eLCEIz3q5K5lxZy/N w0+4Wh+8pYX++5DMbMIxA8GWIS+foUMdHPN6rO5wLR56uKaWW3eqny8cadkyqNq9iOfMRmZ1g cwqCGpXfhfExn8exS3wh+k= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=217.72.192.74; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kito Cheng , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Kito Cheng Some target are using llseek instead of _llseek like riscv, nios2, hexagon, and openrisc. Signed-off-by: Kito Cheng Reviewed-by: Laurent Vivier Message-Id: <20210512101358.122781-1-kito.cheng@sifive.com> Signed-off-by: Laurent Vivier --- linux-user/strace.c | 3 ++- linux-user/strace.list | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/linux-user/strace.c b/linux-user/strace.c index 1cadb6d50f2d..cce0a5d1e351 100644 --- a/linux-user/strace.c +++ b/linux-user/strace.c @@ -2341,7 +2341,7 @@ print_linkat(void *cpu_env, const struct syscallname = *name, } #endif =20 -#ifdef TARGET_NR__llseek +#if defined(TARGET_NR__llseek) || defined(TARGET_NR_llseek) static void print__llseek(void *cpu_env, const struct syscallname *name, abi_long arg0, abi_long arg1, abi_long arg2, @@ -2361,6 +2361,7 @@ print__llseek(void *cpu_env, const struct syscallname= *name, qemu_log("%s", whence); print_syscall_epilogue(name); } +#define print_llseek print__llseek #endif =20 #ifdef TARGET_NR_lseek diff --git a/linux-user/strace.list b/linux-user/strace.list index 3b7c15578ca4..18f72172754f 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -511,6 +511,9 @@ #ifdef TARGET_NR__llseek { TARGET_NR__llseek, "_llseek" , NULL, print__llseek, NULL }, #endif +#ifdef TARGET_NR_llseek +{ TARGET_NR_llseek, "llseek" , NULL, print_llseek, NULL }, +#endif #ifdef TARGET_NR_lock { TARGET_NR_lock, "lock" , NULL, NULL, NULL }, #endif --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316630; cv=none; d=zohomail.com; s=zohoarc; b=MMyYRzhfrZ7A0GgYHHRL9s7Ji/jwULVPl93wVs6mv9A5qwF+FFEjCkHYbIdxGVPElmohRYtacX94bETDcVRkLS9MNjq9NLqNz+DkmGisGPPM+xGFcX/0+299ExToSyklHaFTVN9p/hxcSsnwY8AT+KY5szfBid/TIIZZXURn3pM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316630; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wZoLARSpdvqVLNjjpLNZp9I6FDFZTQJ9G7VRoh3dCdc=; b=h664mtYQwAYXhnhxoV7lSsFKtQFyyfBsWOhkI3G3GS5Dhkbnn/coA1IDn6vIZRmhEVjuzWOAVXs2CEv0c/fjJtWVS52vFvs9R3dtMQi8DV3X4Ly411Z3NP2ilYEhtWXRgkEpFHIc/LUrVDhLFAOd1zz8tuWIBEhi3pqdSu9DqM4= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316630078612.3594141861255; Mon, 17 May 2021 22:43:50 -0700 (PDT) Received: from localhost ([::1]:49718 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisWC-0007Tv-Vi for importer@patchew.org; Tue, 18 May 2021 01:43:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38342) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKV-0006rH-98 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:43 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:50897) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKQ-0006sZ-Lg for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:42 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MS4ab-1lt1c319gZ-00TUiw; Tue, 18 May 2021 07:31:36 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 08/59] linux-user: Split out target_restore_altstack Date: Tue, 18 May 2021 07:30:40 +0200 Message-Id: <20210518053131.87212-9-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:TyP3aaOU60R0iEsbpHWQwOBOwhTaHmDdeKiaPCaIRcpfJbf2gUj yfi1kX2KEgVQcSe25TNbPfBKLZEI19xb+vykmW4KlcSuzVSPtah138iMZ9PsY0SI+s0zjBZ Bj/pC4I8XNAp0VSvI/UrHwJUNdyQSKPYR+Z5XslbNiRnG8wQBm758WKWMDkOR0saivs43EQ +69YqfuIc2sUVi9DqOLkg== X-UI-Out-Filterresults: notjunk:1;V03:K0:QzHqGHPNqh4=:eU5UW7lC9JSaEkWbsW1Ryf pm/YI5uIYw42do2+MxIJuxDtEPtG1hSvtpRO9LCrhjldz3w4osDRWkhfCm1uWIY3q6o4iaoDp yI2sY7H9LOzo/w0l+V66qbBZdzfqe0VvEVQuPbdWMG0I72FHL58hmTGOABWj21T7sWbXusvM0 jiW81GQMzh6d4LuyHz96ngaCiP8LOCwZUHSrFccqK0EuKIy/uDzWPIOThRFB+Dc6CGEEkrW0A lBedx7C08azbblqBw58BsauPdFAmSp4S72eDo4aGSGUdFXUsgpIWu47H5z2/DVtd3zYvijPPS UHHcLi+0YCfRNu9qf1zjSKO64QTR4HIqf4gBfvW2a5OjNSLOnlKdpBYDTcX4uimqPd9Hpg3o2 Y7gHY26cGD6ghEmSFuq8un25nG5vU6Y9jZStHw0pBtxRCPPFZoS5fd/4CdPByXrsAv4VpGIIT 6wimN9JLWCd6fRyEudi84bCwDUzOVeue8xgaducAr7giMTRX4f27K8iISSrq34Qfib6tsKL2Y 8wjm83T1x1m+uY1Fl1sIFg= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.17.13; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Create a function to match target_save_altstack. Fix some style and unlock issues in do_sigaltstack. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-2-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/signal-common.h | 1 + linux-user/signal.c | 115 +++++++++++++++++++++---------------- 2 files changed, 66 insertions(+), 50 deletions(-) diff --git a/linux-user/signal-common.h b/linux-user/signal-common.h index 1df1068552fb..34b963af9abc 100644 --- a/linux-user/signal-common.h +++ b/linux-user/signal-common.h @@ -24,6 +24,7 @@ int on_sig_stack(unsigned long sp); int sas_ss_flags(unsigned long sp); abi_ulong target_sigsp(abi_ulong sp, struct target_sigaction *ka); void target_save_altstack(target_stack_t *uss, CPUArchState *env); +abi_long target_restore_altstack(target_stack_t *uss, abi_ulong sp); =20 static inline void target_sigemptyset(target_sigset_t *set) { diff --git a/linux-user/signal.c b/linux-user/signal.c index 7eecec46c407..9daa89eac5db 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -297,6 +297,50 @@ void target_save_altstack(target_stack_t *uss, CPUArch= State *env) __put_user(ts->sigaltstack_used.ss_size, &uss->ss_size); } =20 +abi_long target_restore_altstack(target_stack_t *uss, abi_ulong sp) +{ + TaskState *ts =3D (TaskState *)thread_cpu->opaque; + size_t minstacksize =3D TARGET_MINSIGSTKSZ; + target_stack_t ss; + +#if defined(TARGET_PPC64) + /* ELF V2 for PPC64 has a 4K minimum stack size for signal handlers */ + struct image_info *image =3D ts->info; + if (get_ppc64_abi(image) > 1) { + minstacksize =3D 4096; + } +#endif + + __get_user(ss.ss_sp, &uss->ss_sp); + __get_user(ss.ss_size, &uss->ss_size); + __get_user(ss.ss_flags, &uss->ss_flags); + + if (on_sig_stack(sp)) { + return -TARGET_EPERM; + } + + switch (ss.ss_flags) { + default: + return -TARGET_EINVAL; + + case TARGET_SS_DISABLE: + ss.ss_size =3D 0; + ss.ss_sp =3D 0; + break; + + case TARGET_SS_ONSTACK: + case 0: + if (ss.ss_size < minstacksize) { + return -TARGET_ENOMEM; + } + break; + } + + ts->sigaltstack_used.ss_sp =3D ss.ss_sp; + ts->sigaltstack_used.ss_size =3D ss.ss_size; + return 0; +} + /* siginfo conversion */ =20 static inline void host_to_target_siginfo_noswap(target_siginfo_t *tinfo, @@ -758,73 +802,44 @@ static void host_signal_handler(int host_signum, sigi= nfo_t *info, /* compare linux/kernel/signal.c:do_sigaltstack() */ abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr, abi_ulong= sp) { - int ret; - struct target_sigaltstack oss; - TaskState *ts =3D (TaskState *)thread_cpu->opaque; + target_stack_t oss, *uoss =3D NULL; + abi_long ret =3D -TARGET_EFAULT; + + if (uoss_addr) { + TaskState *ts =3D (TaskState *)thread_cpu->opaque; =20 - /* XXX: test errors */ - if(uoss_addr) - { + /* Verify writability now, but do not alter user memory yet. */ + if (!lock_user_struct(VERIFY_WRITE, uoss, uoss_addr, 0)) { + goto out; + } __put_user(ts->sigaltstack_used.ss_sp, &oss.ss_sp); __put_user(ts->sigaltstack_used.ss_size, &oss.ss_size); __put_user(sas_ss_flags(sp), &oss.ss_flags); } =20 - if(uss_addr) - { - struct target_sigaltstack *uss; - struct target_sigaltstack ss; - size_t minstacksize =3D TARGET_MINSIGSTKSZ; + if (uss_addr) { + target_stack_t *uss; =20 -#if defined(TARGET_PPC64) - /* ELF V2 for PPC64 has a 4K minimum stack size for signal handler= s */ - struct image_info *image =3D ((TaskState *)thread_cpu->opaque)->in= fo; - if (get_ppc64_abi(image) > 1) { - minstacksize =3D 4096; - } -#endif - - ret =3D -TARGET_EFAULT; if (!lock_user_struct(VERIFY_READ, uss, uss_addr, 1)) { goto out; } - __get_user(ss.ss_sp, &uss->ss_sp); - __get_user(ss.ss_size, &uss->ss_size); - __get_user(ss.ss_flags, &uss->ss_flags); - unlock_user_struct(uss, uss_addr, 0); - - ret =3D -TARGET_EPERM; - if (on_sig_stack(sp)) + ret =3D target_restore_altstack(uss, sp); + if (ret) { goto out; - - ret =3D -TARGET_EINVAL; - if (ss.ss_flags !=3D TARGET_SS_DISABLE - && ss.ss_flags !=3D TARGET_SS_ONSTACK - && ss.ss_flags !=3D 0) - goto out; - - if (ss.ss_flags =3D=3D TARGET_SS_DISABLE) { - ss.ss_size =3D 0; - ss.ss_sp =3D 0; - } else { - ret =3D -TARGET_ENOMEM; - if (ss.ss_size < minstacksize) { - goto out; - } } - - ts->sigaltstack_used.ss_sp =3D ss.ss_sp; - ts->sigaltstack_used.ss_size =3D ss.ss_size; } =20 if (uoss_addr) { - ret =3D -TARGET_EFAULT; - if (copy_to_user(uoss_addr, &oss, sizeof(oss))) - goto out; + memcpy(uoss, &oss, sizeof(oss)); + unlock_user_struct(uoss, uoss_addr, 1); + uoss =3D NULL; } - ret =3D 0; -out: + + out: + if (uoss) { + unlock_user_struct(uoss, uoss_addr, 0); + } return ret; } =20 --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316102; cv=none; d=zohomail.com; s=zohoarc; b=ID6jlm1HKdP2NiRN5eRax+FxsLdw4ncN9J6jk0eOQQez9Lzwk0otFMcvgNQhSv7Olo9cNRebE+hDOBncF4KwMsmkwALhm6eNLU1g0ROiSk6vS05D+RWTkZCO1p3FIS3rU8lwub6zjigysyRz5TaiqmwIAmBjQPk2BFx6aHgBHD8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316102; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=w4zO68ONdyQCIfIsEC3jbLljXfT8nYkAHXAT2D0uYKA=; b=UEWqo7e9JdXGugAdtyL0ChxGdcUqEZmR8igk4sXmdZYhzd1Kq5Qz2mMkJUgJHMYrJBViD6TK3zxMvDUWdjRT9Lq/DQwA+dJwsunJv4CkAQI+SPrBiK1HaSA9UqSGouNJTxBH94j69ohfqFzy35xc9JtYkXjUn/vcmW/E8DAieP8= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316102224813.050166381183; Mon, 17 May 2021 22:35:02 -0700 (PDT) Received: from localhost ([::1]:52200 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisNh-0006yH-1Z for importer@patchew.org; Tue, 18 May 2021 01:35:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38298) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKT-0006lQ-To for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:41 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:56877) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKR-0006tQ-0m for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:41 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MjSsm-1l2i8o3DAY-00kt19; Tue, 18 May 2021 07:31:37 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 09/59] linux-user: Use target_restore_altstack in all sigreturn Date: Tue, 18 May 2021 07:30:41 +0200 Message-Id: <20210518053131.87212-10-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:YdeyL+51I9nU79hB8kJaOGG7cNr8wmUCF3tY4vIlgxnMZjYnhUh PeExuvcCvshQKPHDqPlw2Q98X82GmGeNfFQGB7RLAi61dcUf6NLYDhURG6OqbEO0imBLZGk MHU1DN8lygm6AUBx/6eUsfIcZhonTSgZ0OeCh9qU6ykg1y4IqAnaNYCFWtj9XWmhCTYqESE 3FmMZy0iB9/gHrCXICvng== X-UI-Out-Filterresults: notjunk:1;V03:K0:brCdCloNWww=:bKb4an6O/vfM/RvPd8+kOh FZI6QASCHIIBl3FapE0eCE9qAxu21TpmDWAFlej8rDbNZskoj1SW9CmxNJ9wt4V+7YqkyZj+o HEZ8B0FcQ9+wDDM6nhhkJUr2f3x1TfLNixAd6WpYkiXqbxg3WAshmo+7L6FRPjsineevcO63Y h9xgsbPAvxyzPkDNvPcaqkfFf1q0t5o10zUhGm/N60cINhSKdCd4hLLyDvspFLr7L0XPHXvpI 2Gg28Xxe3dJv3e58eln7SD/1JE7OaBfJBu8pDGc9f6EUrw518VV+zfpbcj+3MbEqY3/hIu3oF VsT+PWULDcm45Cdrr+DguFbfLLvs7wk7ZJynGVHfvJRvNrQimgnc3xuXivR8a5j5fWrIOEmwZ PtDf2HQF4jcuY+MDo/md3A74ZAJkmrH3t12aWoSnNkc7a3mfRhqhNT+GCAXMZ/wuY83LhphUN ruEG7yv0jEGzi5148xGgcs5/Ge5mzG8FZWuLgOD6OwYcYISrkb1+xx6FXVZWkyNmWTuXebCyb qCRpQKEz3Bbi5FpJkXwoCk= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.17.24; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Note that target_restore_altstack uses the host memory pointer that we have already verified, so TARGET_EFAULT is not a possible return value. Note that using -EFAULT was a bug. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-3-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/aarch64/signal.c | 6 +----- linux-user/alpha/signal.c | 6 +----- linux-user/arm/signal.c | 9 ++------- linux-user/hexagon/signal.c | 6 +----- linux-user/hppa/signal.c | 8 +------- linux-user/i386/signal.c | 5 +---- linux-user/m68k/signal.c | 5 +---- linux-user/microblaze/signal.c | 6 +----- linux-user/mips/signal.c | 6 +----- linux-user/nios2/signal.c | 8 +------- linux-user/openrisc/signal.c | 5 +---- linux-user/ppc/signal.c | 4 +--- linux-user/riscv/signal.c | 6 +----- linux-user/s390x/signal.c | 6 ++---- linux-user/sh4/signal.c | 7 +------ linux-user/xtensa/signal.c | 6 +----- 16 files changed, 18 insertions(+), 81 deletions(-) diff --git a/linux-user/aarch64/signal.c b/linux-user/aarch64/signal.c index b591790c22ed..2a1b7dbcdc2b 100644 --- a/linux-user/aarch64/signal.c +++ b/linux-user/aarch64/signal.c @@ -561,11 +561,7 @@ long do_rt_sigreturn(CPUARMState *env) goto badframe; } =20 - if (do_sigaltstack(frame_addr + - offsetof(struct target_rt_sigframe, uc.tuc_stack), - 0, get_sp_from_cpustate(env)) =3D=3D -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/alpha/signal.c b/linux-user/alpha/signal.c index c5c27ce08419..0af022711815 100644 --- a/linux-user/alpha/signal.c +++ b/linux-user/alpha/signal.c @@ -257,11 +257,7 @@ long do_rt_sigreturn(CPUAlphaState *env) set_sigmask(&set); =20 restore_sigcontext(env, &frame->uc.tuc_mcontext); - if (do_sigaltstack(frame_addr + offsetof(struct target_rt_sigframe, - uc.tuc_stack), - 0, env->ir[IR_SP]) =3D=3D -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, env->ir[IR_SP]); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/arm/signal.c b/linux-user/arm/signal.c index f21d1535e4d9..b7a772302f45 100644 --- a/linux-user/arm/signal.c +++ b/linux-user/arm/signal.c @@ -685,11 +685,7 @@ static int do_sigframe_return_v2(CPUARMState *env, } } =20 - if (do_sigaltstack(context_addr - + offsetof(struct target_ucontext_v2, tuc_stack), - 0, get_sp_from_cpustate(env)) =3D=3D -EFAULT) { - return 1; - } + target_restore_altstack(&uc->tuc_stack, get_sp_from_cpustate(env)); =20 #if 0 /* Send SIGTRAP if we're single-stepping */ @@ -773,8 +769,7 @@ static long do_rt_sigreturn_v1(CPUARMState *env) goto badframe; } =20 - if (do_sigaltstack(frame_addr + offsetof(struct rt_sigframe_v1, uc.tuc= _stack), 0, get_sp_from_cpustate(env)) =3D=3D -EFAULT) - goto badframe; + target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); =20 #if 0 /* Send SIGTRAP if we're single-stepping */ diff --git a/linux-user/hexagon/signal.c b/linux-user/hexagon/signal.c index fde8dc93b7a6..3854eb4709be 100644 --- a/linux-user/hexagon/signal.c +++ b/linux-user/hexagon/signal.c @@ -260,11 +260,7 @@ long do_rt_sigreturn(CPUHexagonState *env) } =20 restore_ucontext(env, &frame->uc); - - if (do_sigaltstack(frame_addr + offsetof(struct target_rt_sigframe, - uc.uc_stack), 0, get_sp_from_cpustate(env)) =3D=3D -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.uc_stack, get_sp_from_cpustate(env)= ); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/hppa/signal.c b/linux-user/hppa/signal.c index d1a58feeb36f..578874cf27e6 100644 --- a/linux-user/hppa/signal.c +++ b/linux-user/hppa/signal.c @@ -187,13 +187,7 @@ long do_rt_sigreturn(CPUArchState *env) set_sigmask(&set); =20 restore_sigcontext(env, &frame->uc.tuc_mcontext); - unlock_user_struct(frame, frame_addr, 0); - - if (do_sigaltstack(frame_addr + offsetof(struct target_rt_sigframe, - uc.tuc_stack), - 0, env->gr[30]) =3D=3D -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, env->gr[30]); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/i386/signal.c b/linux-user/i386/signal.c index 9320e1d47267..3a0a1546a63e 100644 --- a/linux-user/i386/signal.c +++ b/linux-user/i386/signal.c @@ -581,10 +581,7 @@ long do_rt_sigreturn(CPUX86State *env) goto badframe; } =20 - if (do_sigaltstack(frame_addr + offsetof(struct rt_sigframe, uc.tuc_st= ack), 0, - get_sp_from_cpustate(env)) =3D=3D -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/m68k/signal.c b/linux-user/m68k/signal.c index 49ff87c77bce..004b59fb6118 100644 --- a/linux-user/m68k/signal.c +++ b/linux-user/m68k/signal.c @@ -400,10 +400,7 @@ long do_rt_sigreturn(CPUM68KState *env) if (target_rt_restore_ucontext(env, &frame->uc)) goto badframe; =20 - if (do_sigaltstack(frame_addr + - offsetof(struct target_rt_sigframe, uc.tuc_stack), - 0, get_sp_from_cpustate(env)) =3D=3D -EFAULT) - goto badframe; + target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/microblaze/signal.c b/linux-user/microblaze/signal.c index cf0707b5564b..f59a1faf47bb 100644 --- a/linux-user/microblaze/signal.c +++ b/linux-user/microblaze/signal.c @@ -209,11 +209,7 @@ long do_rt_sigreturn(CPUMBState *env) =20 restore_sigcontext(&frame->uc.tuc_mcontext, env); =20 - if (do_sigaltstack(frame_addr + - offsetof(struct target_rt_sigframe, uc.tuc_stack), - 0, get_sp_from_cpustate(env)) =3D=3D -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/mips/signal.c b/linux-user/mips/signal.c index 455a8a229a83..456fa64f41cd 100644 --- a/linux-user/mips/signal.c +++ b/linux-user/mips/signal.c @@ -368,11 +368,7 @@ long do_rt_sigreturn(CPUMIPSState *env) set_sigmask(&blocked); =20 restore_sigcontext(env, &frame->rs_uc.tuc_mcontext); - - if (do_sigaltstack(frame_addr + - offsetof(struct target_rt_sigframe, rs_uc.tuc_stack= ), - 0, get_sp_from_cpustate(env)) =3D=3D -EFAULT) - goto badframe; + target_restore_altstack(&frame->rs_uc.tuc_stack, get_sp_from_cpustate(= env)); =20 env->active_tc.PC =3D env->CP0_EPC; mips_set_hflags_isa_mode_from_pc(env); diff --git a/linux-user/nios2/signal.c b/linux-user/nios2/signal.c index 7d535065ed98..751ea88811f8 100644 --- a/linux-user/nios2/signal.c +++ b/linux-user/nios2/signal.c @@ -82,9 +82,7 @@ static int rt_restore_ucontext(CPUNios2State *env, struct= target_ucontext *uc, int *pr2) { int temp; - abi_ulong off, frame_addr =3D env->regs[R_SP]; unsigned long *gregs =3D uc->tuc_mcontext.gregs; - int err; =20 /* Always make any pending restarted system calls return -EINTR */ /* current->restart_block.fn =3D do_no_restart_syscall; */ @@ -130,11 +128,7 @@ static int rt_restore_ucontext(CPUNios2State *env, str= uct target_ucontext *uc, __get_user(env->regs[R_RA], &gregs[23]); __get_user(env->regs[R_SP], &gregs[28]); =20 - off =3D offsetof(struct target_rt_sigframe, uc.tuc_stack); - err =3D do_sigaltstack(frame_addr + off, 0, get_sp_from_cpustate(env)); - if (err =3D=3D -EFAULT) { - return 1; - } + target_restore_altstack(&uc->tuc_stack, get_sp_from_cpustate(env)); =20 *pr2 =3D env->regs[2]; return 0; diff --git a/linux-user/openrisc/signal.c b/linux-user/openrisc/signal.c index 232ad82b98be..86f94d7f766d 100644 --- a/linux-user/openrisc/signal.c +++ b/linux-user/openrisc/signal.c @@ -158,10 +158,7 @@ long do_rt_sigreturn(CPUOpenRISCState *env) set_sigmask(&set); =20 restore_sigcontext(env, &frame->uc.tuc_mcontext); - if (do_sigaltstack(frame_addr + offsetof(target_rt_sigframe, uc.tuc_st= ack), - 0, frame_addr) =3D=3D -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, frame_addr); =20 unlock_user_struct(frame, frame_addr, 0); return cpu_get_gpr(env, 11); diff --git a/linux-user/ppc/signal.c b/linux-user/ppc/signal.c index bad38f8ed9b1..b44d5ce73c31 100644 --- a/linux-user/ppc/signal.c +++ b/linux-user/ppc/signal.c @@ -655,9 +655,7 @@ long do_rt_sigreturn(CPUPPCState *env) if (do_setcontext(&rt_sf->uc, env, 1)) goto sigsegv; =20 - do_sigaltstack(rt_sf_addr - + offsetof(struct target_rt_sigframe, uc.tuc_stack), - 0, env->gpr[1]); + target_restore_altstack(&rt_sf->uc.tuc_stack, env->gpr[1]); =20 unlock_user_struct(rt_sf, rt_sf_addr, 1); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/riscv/signal.c b/linux-user/riscv/signal.c index 67a95dbc7b91..81d1129da3d2 100644 --- a/linux-user/riscv/signal.c +++ b/linux-user/riscv/signal.c @@ -192,11 +192,7 @@ long do_rt_sigreturn(CPURISCVState *env) } =20 restore_ucontext(env, &frame->uc); - - if (do_sigaltstack(frame_addr + offsetof(struct target_rt_sigframe, - uc.uc_stack), 0, get_sp_from_cpustate(env)) =3D=3D -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.uc_stack, get_sp_from_cpustate(env)= ); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index 7107c5fb5335..73806f547270 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -307,10 +307,8 @@ long do_rt_sigreturn(CPUS390XState *env) goto badframe; } =20 - if (do_sigaltstack(frame_addr + offsetof(rt_sigframe, uc.tuc_stack), 0, - get_sp_from_cpustate(env)) =3D=3D -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); + unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; =20 diff --git a/linux-user/sh4/signal.c b/linux-user/sh4/signal.c index 29c1ee30e6d6..684f18da5862 100644 --- a/linux-user/sh4/signal.c +++ b/linux-user/sh4/signal.c @@ -323,12 +323,7 @@ long do_rt_sigreturn(CPUSH4State *regs) set_sigmask(&blocked); =20 restore_sigcontext(regs, &frame->uc.tuc_mcontext); - - if (do_sigaltstack(frame_addr + - offsetof(struct target_rt_sigframe, uc.tuc_stack), - 0, get_sp_from_cpustate(regs)) =3D=3D -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(reg= s)); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/xtensa/signal.c b/linux-user/xtensa/signal.c index 590f0313ffe9..22ec6cdeb98e 100644 --- a/linux-user/xtensa/signal.c +++ b/linux-user/xtensa/signal.c @@ -253,12 +253,8 @@ long do_rt_sigreturn(CPUXtensaState *env) set_sigmask(&set); =20 restore_sigcontext(env, frame); + target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); =20 - if (do_sigaltstack(frame_addr + - offsetof(struct target_rt_sigframe, uc.tuc_stack), - 0, get_sp_from_cpustate(env)) =3D=3D -TARGET_EFAULT= ) { - goto badframe; - } unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; =20 --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316336; cv=none; d=zohomail.com; s=zohoarc; b=GqqYuQNRN6TRlteIZf+ywkJSJqdfSS+f0KndfyO6EYzReyS6EFv/NpEn8ecYFUpterur8f9ebQgz+8mTkUHyaYREzNpp0X0GtZaf0AlPoqH4SxEjWL3pFA+NbzRMXsg5GfDkxhs1g1c3huLzQ5r8Th3LBvEIKwoBU0YT412f0yY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316336; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=FsBmKb5yhr2M5OsIL5COxS7Do7okkyTuDNGVTS8LN8E=; b=n1qx8WXgdbmf13LHaSmiyDu+5bmLDcFoyWlfiNtcaPT8kSjVT9XSv+bIHOafDkC48qbB6mwYbNYI6pRVi9ADEcRxeZN8Q2dFlHmVUSqDoxCyb7I8R9kUEwBiuVUzdRLMya27+EIwmC222St8TQDxYNyV4BEKeCtgwe8l6RC/CSw= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316336713293.1629896339374; Mon, 17 May 2021 22:38:56 -0700 (PDT) Received: from localhost ([::1]:40762 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisRT-0001HN-E7 for importer@patchew.org; Tue, 18 May 2021 01:38:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38292) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKT-0006jq-Fg for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:41 -0400 Received: from mout.kundenserver.de ([217.72.192.74]:44839) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKR-0006uG-Dl for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:41 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MYvHa-1lw1U11kBM-00UtMf; Tue, 18 May 2021 07:31:37 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 10/59] linux-user: Pass CPUArchState to do_sigaltstack Date: Tue, 18 May 2021 07:30:42 +0200 Message-Id: <20210518053131.87212-11-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:Jw/oUiKDbNugkvf4iJbUazGAX2NzpEhAkTWc54ZKkoceoDH+qg4 olZj7g53VYt6JD8eLQWsGDREJ9PA7YChgadWBavteBUWjLaCbcmzWGKGWgwix/yrJbQ+kR8 NsuyFhJvmwVTlZEWOu5Clir61SrukYU1RaRH2Gzec8f2kWCrWfuDToTvq2eutWLIYAsQqpi 3e07wrvVHkxD+N9oOZfvQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:If9dX0RJ5mc=:Xdz3KYrHF7kP5L+IOxcMLC Pb0/zp+EzYp4t6rzHsJazEiFXf8nLDzvW6gtAeOB1i4N7GVz85cpqDIZmUzI6V5OywtE/kCuq 6E3HtFYFjo32tKJhwHtWO2S0IUUZ0SGVCnJLez4AZkVcZBwAUn/xdi0r2PM6XAHgd0ZvGjxRg 5Tsj0TIRu8L0EIVwAhyOQVWQB8HIDJiIw95wVW6J4DukmHzIAMnuqbdZR7XY7FiZVR5bpRqXr TdQ5X+mND6RJo/89mzGrx9hHToUZMrwj7eMkzf5K7/4TPk/7pdjQOJuhGmrMogD0Q7wgUusdD MC8ghIU7JfBzoBy3rPwG11or7X99kjjwpylNg+2dw0c/YFrha048/oB1lNZazL+rzyq/Q2Ruk T3POjNNbNlNZySr40UH6+FFOe4ha/mCFvuYf5tBZ6Cqi086sdkeL9pcpkScPyftW4mWqlzczq ++2wmgefj9ROf0KtJW7r/vebaASc+DfK37dAozTXMuE+Yq+Y7VN6CmwMmCQkj1JB2q6q0i7Md 112FxYEHsYKBmxKP/OeVjo= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=217.72.192.74; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Now that we have exactly one call, it's easy to pass in env instead of passing in the sp value. Use target_save_altstack, which required env. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-4-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/qemu.h | 3 ++- linux-user/signal.c | 11 ++++------- linux-user/syscall.c | 3 +-- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/linux-user/qemu.h b/linux-user/qemu.h index 74e06e7121c5..3b0b6b75fe8f 100644 --- a/linux-user/qemu.h +++ b/linux-user/qemu.h @@ -432,7 +432,8 @@ int target_to_host_signal(int sig); int host_to_target_signal(int sig); long do_sigreturn(CPUArchState *env); long do_rt_sigreturn(CPUArchState *env); -abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr, abi_ulong= sp); +abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr, + CPUArchState *env); int do_sigprocmask(int how, const sigset_t *set, sigset_t *oldset); abi_long do_swapcontext(CPUArchState *env, abi_ulong uold_ctx, abi_ulong unew_ctx, abi_long ctx_size); diff --git a/linux-user/signal.c b/linux-user/signal.c index 9daa89eac5db..2e1095055b7c 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -800,21 +800,18 @@ static void host_signal_handler(int host_signum, sigi= nfo_t *info, =20 /* do_sigaltstack() returns target values and errnos. */ /* compare linux/kernel/signal.c:do_sigaltstack() */ -abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr, abi_ulong= sp) +abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr, + CPUArchState *env) { target_stack_t oss, *uoss =3D NULL; abi_long ret =3D -TARGET_EFAULT; =20 if (uoss_addr) { - TaskState *ts =3D (TaskState *)thread_cpu->opaque; - /* Verify writability now, but do not alter user memory yet. */ if (!lock_user_struct(VERIFY_WRITE, uoss, uoss_addr, 0)) { goto out; } - __put_user(ts->sigaltstack_used.ss_sp, &oss.ss_sp); - __put_user(ts->sigaltstack_used.ss_size, &oss.ss_size); - __put_user(sas_ss_flags(sp), &oss.ss_flags); + target_save_altstack(&oss, env); } =20 if (uss_addr) { @@ -823,7 +820,7 @@ abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong u= oss_addr, abi_ulong sp) if (!lock_user_struct(VERIFY_READ, uss, uss_addr, 1)) { goto out; } - ret =3D target_restore_altstack(uss, sp); + ret =3D target_restore_altstack(uss, get_sp_from_cpustate(env)); if (ret) { goto out; } diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 95d79ddc437a..4d52b2cfe36d 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -11195,8 +11195,7 @@ static abi_long do_syscall1(void *cpu_env, int num,= abi_long arg1, return ret; } case TARGET_NR_sigaltstack: - return do_sigaltstack(arg1, arg2, - get_sp_from_cpustate((CPUArchState *)cpu_env= )); + return do_sigaltstack(arg1, arg2, cpu_env); =20 #ifdef CONFIG_SENDFILE #ifdef TARGET_NR_sendfile --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316340; cv=none; d=zohomail.com; s=zohoarc; b=JvuqVITRQLm7Xa2hEHFHgoEQqjWHGPdhHVmln1t+xb2Hu7mQrAioiC6LkMjlFyOxyZ9H4x7TtyooBc3a9bTDGmPA0NEVW6Kf0dYR10Dgci469xC6hMqGDMgH2WYkg9NUx5OJP1cMZyLfjStbaSMQ687++h+g5uljYVnEtBWRVBE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316340; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=pjD9GeDa8UaqAnMFx0NE4NNxldE8HgDuAyrgOLsUNyU=; b=jic4t8sOjLSuNhGjiu0yxRYKLJ+05eHyuaqXpKOfAncS/1cp9gqVNqLyiB6Wv+B2MvJaS2fRO9BjkMyuEzsKxaUMrZ8WdhhbOPujYDmqA9ksEfVHgACdtotMAK9yTWDsBlZYHkQw94rGlT1iWYdUITUCx4Brm7PaQovW14DF66c= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316340226805.3532881792098; Mon, 17 May 2021 22:39:00 -0700 (PDT) Received: from localhost ([::1]:41104 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisRW-0001Wy-TB for importer@patchew.org; Tue, 18 May 2021 01:38:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38338) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKU-0006pj-UI for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:42 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:48659) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKS-0006uh-0c for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:42 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1N5W0q-1lOcjr3epO-016yGp; Tue, 18 May 2021 07:31:38 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 11/59] linux-user: Pass CPUArchState to target_restore_altstack Date: Tue, 18 May 2021 07:30:43 +0200 Message-Id: <20210518053131.87212-12-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:paTfZ3iBZq58bYEomJI9ql453V7ZpPsTY39F2bg9JPy157o0ywI 7D1OzbJ7bB2kbpz5UYrVIW0VAbdi71Au5aaXR3amSVt6TXQEkHjdGcRkn1qIxSkGuaCBEKE Id3oP3/krsD89aJf/98s757svtHSDiif5axOMGbNixyT2jOC8f2T7d353Fg4W+0Ta3IrG99 5Lus7COb0+t6UIgg3X+Lw== X-UI-Out-Filterresults: notjunk:1;V03:K0:Z263EZEcSFE=:BRf+2tyANL4s4v3v0O3OY4 /z1ZW4e/xu+p1Kf82DacsEhxh+crD0mewE8DQBZ3XKjesfFxu4jEjdp1oTmoFAsc3BMOrxut6 MPU6TfDYNTPecoLrcj/jm2kodXqkb3R7YezQR21PIr1z8L9ak/rMxtmBTLrmSFQfNwK59nEuc 2ptNIwZyjTQwL8HuscRiRWmfrn4CrH1cDocgQfBObEjXMSuNx+unBPwXoneFOqS3TpfTujred rwCbnz/I3NJfCtdIqrp26ewC/7sM4vIcD4tkzjJIe5TJlmNr59EFDPz1rHf7hU5elodkptgGU r62xnMPtcg9lGi5nruG+sTcFJlrZkTqA1+21jvXS01vYbegnRlXOOlnGScnH8BKOgd4++hWU9 zz1DqSEnCJABC+LMk/oDCbVZ8Hu96rzkkw/I3/zME6zFv82erWk0ld1aLhgHBUbbvjKBOi8ef 4jZSCHI1aye4X1oymujIF65TN58wPMxIFaOXnPcRYb43cTzjDGP4iN1cb73CD7lZ3WTYg8/wh CZilp1G0Qgr/dY370+lPxU= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.17.13; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson In most cases we were already passing get_sp_from_cpustate directly to the function. In other cases, we were passing a local variable which already contained the same value. In the rest of the cases, we were passing the stack pointer out of env directly. Reviewed by: Warner Losh Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-5-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/aarch64/signal.c | 2 +- linux-user/alpha/signal.c | 2 +- linux-user/arm/signal.c | 4 ++-- linux-user/hexagon/signal.c | 2 +- linux-user/hppa/signal.c | 2 +- linux-user/i386/signal.c | 2 +- linux-user/m68k/signal.c | 2 +- linux-user/microblaze/signal.c | 2 +- linux-user/mips/signal.c | 2 +- linux-user/nios2/signal.c | 2 +- linux-user/openrisc/signal.c | 2 +- linux-user/ppc/signal.c | 2 +- linux-user/riscv/signal.c | 2 +- linux-user/s390x/signal.c | 2 +- linux-user/sh4/signal.c | 2 +- linux-user/signal-common.h | 2 +- linux-user/signal.c | 6 +++--- linux-user/xtensa/signal.c | 2 +- 18 files changed, 21 insertions(+), 21 deletions(-) diff --git a/linux-user/aarch64/signal.c b/linux-user/aarch64/signal.c index 2a1b7dbcdc2b..662bcd1c4e57 100644 --- a/linux-user/aarch64/signal.c +++ b/linux-user/aarch64/signal.c @@ -561,7 +561,7 @@ long do_rt_sigreturn(CPUARMState *env) goto badframe; } =20 - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); + target_restore_altstack(&frame->uc.tuc_stack, env); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/alpha/signal.c b/linux-user/alpha/signal.c index 0af022711815..d4e4666874e3 100644 --- a/linux-user/alpha/signal.c +++ b/linux-user/alpha/signal.c @@ -257,7 +257,7 @@ long do_rt_sigreturn(CPUAlphaState *env) set_sigmask(&set); =20 restore_sigcontext(env, &frame->uc.tuc_mcontext); - target_restore_altstack(&frame->uc.tuc_stack, env->ir[IR_SP]); + target_restore_altstack(&frame->uc.tuc_stack, env); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/arm/signal.c b/linux-user/arm/signal.c index b7a772302f45..32b68ee302ba 100644 --- a/linux-user/arm/signal.c +++ b/linux-user/arm/signal.c @@ -685,7 +685,7 @@ static int do_sigframe_return_v2(CPUARMState *env, } } =20 - target_restore_altstack(&uc->tuc_stack, get_sp_from_cpustate(env)); + target_restore_altstack(&uc->tuc_stack, env); =20 #if 0 /* Send SIGTRAP if we're single-stepping */ @@ -769,7 +769,7 @@ static long do_rt_sigreturn_v1(CPUARMState *env) goto badframe; } =20 - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); + target_restore_altstack(&frame->uc.tuc_stack, env); =20 #if 0 /* Send SIGTRAP if we're single-stepping */ diff --git a/linux-user/hexagon/signal.c b/linux-user/hexagon/signal.c index 3854eb4709be..85eab5e94382 100644 --- a/linux-user/hexagon/signal.c +++ b/linux-user/hexagon/signal.c @@ -260,7 +260,7 @@ long do_rt_sigreturn(CPUHexagonState *env) } =20 restore_ucontext(env, &frame->uc); - target_restore_altstack(&frame->uc.uc_stack, get_sp_from_cpustate(env)= ); + target_restore_altstack(&frame->uc.uc_stack, env); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/hppa/signal.c b/linux-user/hppa/signal.c index 578874cf27e6..0e266f472d5a 100644 --- a/linux-user/hppa/signal.c +++ b/linux-user/hppa/signal.c @@ -187,7 +187,7 @@ long do_rt_sigreturn(CPUArchState *env) set_sigmask(&set); =20 restore_sigcontext(env, &frame->uc.tuc_mcontext); - target_restore_altstack(&frame->uc.tuc_stack, env->gr[30]); + target_restore_altstack(&frame->uc.tuc_stack, env); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/i386/signal.c b/linux-user/i386/signal.c index 3a0a1546a63e..8701774e3791 100644 --- a/linux-user/i386/signal.c +++ b/linux-user/i386/signal.c @@ -581,7 +581,7 @@ long do_rt_sigreturn(CPUX86State *env) goto badframe; } =20 - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); + target_restore_altstack(&frame->uc.tuc_stack, env); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/m68k/signal.c b/linux-user/m68k/signal.c index 004b59fb6118..d06230655e98 100644 --- a/linux-user/m68k/signal.c +++ b/linux-user/m68k/signal.c @@ -400,7 +400,7 @@ long do_rt_sigreturn(CPUM68KState *env) if (target_rt_restore_ucontext(env, &frame->uc)) goto badframe; =20 - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); + target_restore_altstack(&frame->uc.tuc_stack, env); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/microblaze/signal.c b/linux-user/microblaze/signal.c index f59a1faf47bb..4c483bd8c606 100644 --- a/linux-user/microblaze/signal.c +++ b/linux-user/microblaze/signal.c @@ -209,7 +209,7 @@ long do_rt_sigreturn(CPUMBState *env) =20 restore_sigcontext(&frame->uc.tuc_mcontext, env); =20 - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); + target_restore_altstack(&frame->uc.tuc_stack, env); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/mips/signal.c b/linux-user/mips/signal.c index 456fa64f41cd..e6be807a81ae 100644 --- a/linux-user/mips/signal.c +++ b/linux-user/mips/signal.c @@ -368,7 +368,7 @@ long do_rt_sigreturn(CPUMIPSState *env) set_sigmask(&blocked); =20 restore_sigcontext(env, &frame->rs_uc.tuc_mcontext); - target_restore_altstack(&frame->rs_uc.tuc_stack, get_sp_from_cpustate(= env)); + target_restore_altstack(&frame->rs_uc.tuc_stack, env); =20 env->active_tc.PC =3D env->CP0_EPC; mips_set_hflags_isa_mode_from_pc(env); diff --git a/linux-user/nios2/signal.c b/linux-user/nios2/signal.c index 751ea88811f8..cc3872f11da2 100644 --- a/linux-user/nios2/signal.c +++ b/linux-user/nios2/signal.c @@ -128,7 +128,7 @@ static int rt_restore_ucontext(CPUNios2State *env, stru= ct target_ucontext *uc, __get_user(env->regs[R_RA], &gregs[23]); __get_user(env->regs[R_SP], &gregs[28]); =20 - target_restore_altstack(&uc->tuc_stack, get_sp_from_cpustate(env)); + target_restore_altstack(&uc->tuc_stack, env); =20 *pr2 =3D env->regs[2]; return 0; diff --git a/linux-user/openrisc/signal.c b/linux-user/openrisc/signal.c index 86f94d7f766d..5c5640a28487 100644 --- a/linux-user/openrisc/signal.c +++ b/linux-user/openrisc/signal.c @@ -158,7 +158,7 @@ long do_rt_sigreturn(CPUOpenRISCState *env) set_sigmask(&set); =20 restore_sigcontext(env, &frame->uc.tuc_mcontext); - target_restore_altstack(&frame->uc.tuc_stack, frame_addr); + target_restore_altstack(&frame->uc.tuc_stack, env); =20 unlock_user_struct(frame, frame_addr, 0); return cpu_get_gpr(env, 11); diff --git a/linux-user/ppc/signal.c b/linux-user/ppc/signal.c index b44d5ce73c31..edfad28a375a 100644 --- a/linux-user/ppc/signal.c +++ b/linux-user/ppc/signal.c @@ -655,7 +655,7 @@ long do_rt_sigreturn(CPUPPCState *env) if (do_setcontext(&rt_sf->uc, env, 1)) goto sigsegv; =20 - target_restore_altstack(&rt_sf->uc.tuc_stack, env->gpr[1]); + target_restore_altstack(&rt_sf->uc.tuc_stack, env); =20 unlock_user_struct(rt_sf, rt_sf_addr, 1); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/riscv/signal.c b/linux-user/riscv/signal.c index 81d1129da3d2..9405c7fd9af6 100644 --- a/linux-user/riscv/signal.c +++ b/linux-user/riscv/signal.c @@ -192,7 +192,7 @@ long do_rt_sigreturn(CPURISCVState *env) } =20 restore_ucontext(env, &frame->uc); - target_restore_altstack(&frame->uc.uc_stack, get_sp_from_cpustate(env)= ); + target_restore_altstack(&frame->uc.uc_stack, env); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index 73806f547270..b68b44ae7e99 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -307,7 +307,7 @@ long do_rt_sigreturn(CPUS390XState *env) goto badframe; } =20 - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); + target_restore_altstack(&frame->uc.tuc_stack, env); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/sh4/signal.c b/linux-user/sh4/signal.c index 684f18da5862..0451e65806a1 100644 --- a/linux-user/sh4/signal.c +++ b/linux-user/sh4/signal.c @@ -323,7 +323,7 @@ long do_rt_sigreturn(CPUSH4State *regs) set_sigmask(&blocked); =20 restore_sigcontext(regs, &frame->uc.tuc_mcontext); - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(reg= s)); + target_restore_altstack(&frame->uc.tuc_stack, regs); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/signal-common.h b/linux-user/signal-common.h index 34b963af9abc..ea86328b289a 100644 --- a/linux-user/signal-common.h +++ b/linux-user/signal-common.h @@ -24,7 +24,7 @@ int on_sig_stack(unsigned long sp); int sas_ss_flags(unsigned long sp); abi_ulong target_sigsp(abi_ulong sp, struct target_sigaction *ka); void target_save_altstack(target_stack_t *uss, CPUArchState *env); -abi_long target_restore_altstack(target_stack_t *uss, abi_ulong sp); +abi_long target_restore_altstack(target_stack_t *uss, CPUArchState *env); =20 static inline void target_sigemptyset(target_sigset_t *set) { diff --git a/linux-user/signal.c b/linux-user/signal.c index 2e1095055b7c..cbd80b28cf5a 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -297,7 +297,7 @@ void target_save_altstack(target_stack_t *uss, CPUArchS= tate *env) __put_user(ts->sigaltstack_used.ss_size, &uss->ss_size); } =20 -abi_long target_restore_altstack(target_stack_t *uss, abi_ulong sp) +abi_long target_restore_altstack(target_stack_t *uss, CPUArchState *env) { TaskState *ts =3D (TaskState *)thread_cpu->opaque; size_t minstacksize =3D TARGET_MINSIGSTKSZ; @@ -315,7 +315,7 @@ abi_long target_restore_altstack(target_stack_t *uss, a= bi_ulong sp) __get_user(ss.ss_size, &uss->ss_size); __get_user(ss.ss_flags, &uss->ss_flags); =20 - if (on_sig_stack(sp)) { + if (on_sig_stack(get_sp_from_cpustate(env))) { return -TARGET_EPERM; } =20 @@ -820,7 +820,7 @@ abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong u= oss_addr, if (!lock_user_struct(VERIFY_READ, uss, uss_addr, 1)) { goto out; } - ret =3D target_restore_altstack(uss, get_sp_from_cpustate(env)); + ret =3D target_restore_altstack(uss, env); if (ret) { goto out; } diff --git a/linux-user/xtensa/signal.c b/linux-user/xtensa/signal.c index 22ec6cdeb98e..72771e1294b6 100644 --- a/linux-user/xtensa/signal.c +++ b/linux-user/xtensa/signal.c @@ -253,7 +253,7 @@ long do_rt_sigreturn(CPUXtensaState *env) set_sigmask(&set); =20 restore_sigcontext(env, frame); - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env= )); + target_restore_altstack(&frame->uc.tuc_stack, env); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316860; cv=none; d=zohomail.com; s=zohoarc; b=eIaI2WrCsXNwyoMbMCZvpjEu3zsChXJ/5L1elvooIdDEMUYjKgKaezaf0BFTqJ3x9xIcfU9bZhAUgOZOtMYI+LSgfk5AtGG50ZbCgxwYzXdCuN35SyjsMuQsMbX/BR58L2HDirghOqhjC+9qDbZdHDZ+mCoUkcroaQrp1OFyD8o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316860; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lmBK7zyqk3ylGczsALndLJqVjWyb/57GyLpftSij1OU=; b=T+pLMEaKh81P49l2nGE0P32LnwjxjSo18ZGGy5Z9tyGbl+/vozOKBq7htywxXsw5Fu66WJNAHt4ecKMBdj/IEuIC5iqbRzp6oIXkV5gD3HdkOYjXACXlJDYeS2gPuPkXdSf2Jhb5Q/Xof9d9oeRItmphes2yS0cyuWdBoN2I7ek= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316860744527.3957526338528; Mon, 17 May 2021 22:47:40 -0700 (PDT) Received: from localhost ([::1]:57882 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisZv-0004dG-MB for importer@patchew.org; Tue, 18 May 2021 01:47:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38386) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKX-0006zl-8u for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:45 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:47683) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKS-0006us-IO for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:44 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1Mc0Er-1lCIvl1fOZ-00dV9a; Tue, 18 May 2021 07:31:38 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 12/59] linux-user/sparc: Include TARGET_STACK_BIAS in get_sp_from_cpustate Date: Tue, 18 May 2021 07:30:44 +0200 Message-Id: <20210518053131.87212-13-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:5i6JqPuL/+DAcO2iyI5Pv5ldXfdukbb8nXjZG1RQljMFd+QqnXj C/6ylvmExsNTYJVYmaAGG/h0Xd2FuIKZrwLUMwe/gl2bjOE5j1EHmVamNhuWwj0YOsihoAr 0HaBTCSLXWG+l0OsmqBMYvUiWhr1i2W45/+zdkHLQz00pyOhr3hJjNDUt6SS7kgFXFF2rbu ZXXoF6LOufwiFnCNzSReA== X-UI-Out-Filterresults: notjunk:1;V03:K0:Xy/tL6hw5/M=:k6PHLG2M8y83ry+ax8bCrw CFinO+4BjBKovrudbPnyiE6H28L3A0ILXmudlEo12NUiRv0BNFlnXxBH12/nF+PNmDkdacA/2 XlDOD89R5CkMT1xgukSv+OqfRxga2dM4ZVbdwoq0tE4dhhiX8dazc8zp2hx03kPZKChMm4cpM 1TkEs9fMGmPOwLx0S+7z5lhWO5TL9zqbaZLp05yQc4tWk345QWGJgsiTaOTaxXM3YcNA8jtSg j/OGgqg9zaDd9KbrN67h4LuDCYsy1Yf0mT/zhTXO0XgN6vKa628Lcd8lNPec0ys47w3ZTPVd7 DVJYdosKGB2rS/pq4FxESXaKLfT3a7v/fDNQcushRNnWi9NqUUmuapLru5HHRNeqwTvJDIOKh g+r5WslS9BQWWahMAm9GiFQjrcAqMHzf1IpalhkQfdGo9278bQp33GVBz1AparbxIZ/sjxY9E mIGh0SKFt89It8shslvmJH6sl7493h06MnDnJxLeWk8/xuBYNsn96vIdFF1uKWmRL/goEQ0ei RlvFpLZ6u0stkhUnqxrf50= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.17.10; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Move TARGET_STACK_BIAS from signal.c. Generic code cares about the logical stack pointer, not the physical one that has a bias applied for sparc64. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-6-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 2 -- linux-user/sparc/target_cpu.h | 9 ++++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index d27b7a3af79d..76579093a88c 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -394,8 +394,6 @@ struct target_reg_window { abi_ulong ins[8]; }; =20 -#define TARGET_STACK_BIAS 2047 - /* {set, get}context() needed for 64-bit SparcLinux userland. */ void sparc64_set_context(CPUSPARCState *env) { diff --git a/linux-user/sparc/target_cpu.h b/linux-user/sparc/target_cpu.h index 1fa1011775a1..1f4bed50f476 100644 --- a/linux-user/sparc/target_cpu.h +++ b/linux-user/sparc/target_cpu.h @@ -20,6 +20,12 @@ #ifndef SPARC_TARGET_CPU_H #define SPARC_TARGET_CPU_H =20 +#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32) +# define TARGET_STACK_BIAS 2047 +#else +# define TARGET_STACK_BIAS 0 +#endif + static inline void cpu_clone_regs_child(CPUSPARCState *env, target_ulong n= ewsp, unsigned flags) { @@ -40,6 +46,7 @@ static inline void cpu_clone_regs_child(CPUSPARCState *en= v, target_ulong newsp, #endif /* ??? The kernel appears to copy one stack frame to the new stack= . */ /* ??? The kernel force aligns the new stack. */ + /* Userspace provides a biased stack pointer value. */ env->regwptr[WREG_SP] =3D newsp; } =20 @@ -77,7 +84,7 @@ static inline void cpu_set_tls(CPUSPARCState *env, target= _ulong newtls) =20 static inline abi_ulong get_sp_from_cpustate(CPUSPARCState *state) { - return state->regwptr[WREG_SP]; + return state->regwptr[WREG_SP] + TARGET_STACK_BIAS; } =20 #endif --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316625; cv=none; d=zohomail.com; s=zohoarc; b=g1WTZf8zeopar9ZFqugSEmhIiM8+BEFdxRxamWK8SVhQgUJg3hJx4X0Swx1DklvdmtTxKsuVyOHRFjZf4vP5O6uQjQ5P0jh4a+74Yah4VIUlmV2iM19vnEQ9DTfZfDRD/i14yGhQcYvkrcIm97gNXBTGrTx50COxxUjrI9ERIWI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316625; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bCwwniDfTG1rZnrmEjNm3NAale83yCCFDAqoQ9sm3I0=; b=BSsIuq2q97hqkBSH+1hxh/eGxoxt8jwg4hG3JZVA+idkXznXnZqP5Qt+TTWooKpz7G/JPuuDAPqM0fjs3yMaXIAkoEn6NUJApUV+cPzNlM9SircatwxOrimBFZYaK6lnHtbdWK0S4IKUIBzbaOq+a5YE8K0kkekySS1l420wmKo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316625967822.6992033417079; Mon, 17 May 2021 22:43:45 -0700 (PDT) Received: from localhost ([::1]:49360 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisW8-0007FD-Tz for importer@patchew.org; Tue, 18 May 2021 01:43:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38360) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKV-0006u6-VJ for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:43 -0400 Received: from mout.kundenserver.de ([217.72.192.75]:49477) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKS-0006v4-Qi for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:43 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MwxRN-1lX7453OZP-00yTwY; Tue, 18 May 2021 07:31:39 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 13/59] linux-user/sparc: Clean up init_thread Date: Tue, 18 May 2021 07:30:45 +0200 Message-Id: <20210518053131.87212-14-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:A+V8BPEdLq7Ux9hJEFv4mAbW7gmXjpjxN8GRKXhvyvRIViu2WdG vwG4nIf8En+t2iG+i5lmLcG6PGlKKJkBGEnal0RdW7C+xoEaS8lS8y/HkGN5jGzYrQeqMOw eNjKmtQ83AsAWdXjKewTsaVgW7tZu33Q9qRqkOY7WgGeWc/CBr+bnPZbfDvlRyGsVmdN9MM vgPZ159LNgU4ufONy2y7Q== X-UI-Out-Filterresults: notjunk:1;V03:K0:MwvuRD7FbiQ=:y5ymzWnrZHdCjyyQd0/QxQ Gn43F+GKJ2tIG6wD6m1Wou50YbQHtYZkRnnIhBpzXkeQoWdP8unsuUK7UMbdIjRwb3xPFnKly teGXfGbf37nYWsxBAd2HRbVT5V2ilC/1IY5e5FlGAC1w8dckC3EGHLPF7L4Adv+2prqNgmbAx 2S77oubj+Vy2dxwhx2V8TO1woMJyI/SGAw61GgqQPOrfGJYYvkSfytuMNgyGbc3gYu+wUuxgW 8R5vLSJZWlNzlUTYrN0Hf49vAkeyhcm9o25V28C515n2CiZw/TmtyoOmZaMMrsALaCffz2rrD pYqsREXuDnikL99OAk41mhXMlsNxJPO3sXG9PQa1buo9q/Sbdm5y5M0Tr7tXire0G3NRDSzX9 k5e85omxL46qjh83hfMSva3CXsHT4IquG+Ejq5fio6fyeKu573YObmy/IcSsDG3SdtaSjylsf qsovBZ2D3AZq74nXy/zuaVvHDaFVWRjHeIT3TngsZ/CrnDHoqQpQdvF0wXBx+6herUkAgXrGy cUNfdX4mFBud9J2nWleQSI= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=217.72.192.75; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Share code between sparc32 and sparc64, removing a bit of pointless difference wrt psr/tstate. Use sizeof(abi_ulong) for allocating initial register window. Use TARGET_STACK_BIAS. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-7-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/elfload.c | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index fc9c4f12be92..ffc03d72f935 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -676,48 +676,25 @@ static uint32_t get_elf_hwcap2(void) =20 #define ELF_CLASS ELFCLASS64 #define ELF_ARCH EM_SPARCV9 - -#define STACK_BIAS 2047 - -static inline void init_thread(struct target_pt_regs *regs, - struct image_info *infop) -{ -#ifndef TARGET_ABI32 - regs->tstate =3D 0; -#endif - regs->pc =3D infop->entry; - regs->npc =3D regs->pc + 4; - regs->y =3D 0; -#ifdef TARGET_ABI32 - regs->u_regs[14] =3D infop->start_stack - 16 * 4; -#else - if (personality(infop->personality) =3D=3D PER_LINUX32) - regs->u_regs[14] =3D infop->start_stack - 16 * 4; - else - regs->u_regs[14] =3D infop->start_stack - 16 * 8 - STACK_BIAS; -#endif -} - #else #define ELF_START_MMAP 0x80000000 #define ELF_HWCAP (HWCAP_SPARC_FLUSH | HWCAP_SPARC_STBAR | HWCAP_SPARC_SW= AP \ | HWCAP_SPARC_MULDIV) - #define ELF_CLASS ELFCLASS32 #define ELF_ARCH EM_SPARC +#endif /* TARGET_SPARC64 */ =20 static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) { - regs->psr =3D 0; + /* Note that target_cpu_copy_regs does not read psr/tstate. */ regs->pc =3D infop->entry; regs->npc =3D regs->pc + 4; regs->y =3D 0; - regs->u_regs[14] =3D infop->start_stack - 16 * 4; + regs->u_regs[14] =3D (infop->start_stack - 16 * sizeof(abi_ulong) + - TARGET_STACK_BIAS); } - -#endif -#endif +#endif /* TARGET_SPARC */ =20 #ifdef TARGET_PPC =20 --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316101; cv=none; d=zohomail.com; s=zohoarc; b=jcMXS/PIXErFwy8wgNjLEsPjl8KTWpy1d9Smo39+QrFQ+PmBl55aB4UWv4kJaLlxMtrHUXLRD5AQUzMEVM+HhwuRpyyAsQBZR8qFNYGbS5vcehsABVJGXXpo/rJb42PtPvytq6xOvjqwx6wI0HTq82jJujwWmUYP6QGVJS5lNSM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316101; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=lUpMGKO8CkYSHYgN2OoUn+D46OvBXXnaP6fght3wCgk=; b=e41N01IDH/lkLS3UWdYBs1V3gZUnFWsQ4XTQiP+h4WE+hcsU3DKuZgHqNbi646CqPMGnXIRjOZWarzR/v/f7BHSxvRMSOyDEHpmcqjoZsGdL1RIhRyXPWRjg6rbv2ibTxjMq1jyDRs04DOCxCzaKfwSPiqH6LIMZFbnKw0zMqzU= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316101758980.8562645491936; Mon, 17 May 2021 22:35:01 -0700 (PDT) Received: from localhost ([::1]:52176 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisNg-0006xJ-KU for importer@patchew.org; Tue, 18 May 2021 01:35:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38392) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKX-00070j-Dw for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:45 -0400 Received: from mout.kundenserver.de ([217.72.192.73]:49463) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKT-0006wT-QU for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:45 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1Mg6qO-1lGxl710Aw-00hdsl; Tue, 18 May 2021 07:31:39 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 14/59] linux-user/sparc: Merge sparc64 target_syscall.h Date: Tue, 18 May 2021 07:30:46 +0200 Message-Id: <20210518053131.87212-15-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:zP0eWViHxxDL9FfgmA6x+3t6FcO1YueMs/xzTNXd9Vai0futfoA D0iEp65oAkJurH/le9OQckNuCW/V+jo7i0UuM5KIvEBPkx6lDBJlN1na4NHMtX7AjNX5frp vSSM7aLelUN4hJfsVniJg48rcyGvP5WIIJog/QlQzhhWlt1xULMkAvOwjIItpQCRIIGnQP+ 7bXwOKu1MubGgGUuWIK+A== X-UI-Out-Filterresults: notjunk:1;V03:K0:rCrVIjbhFDk=:etvdoAc6TsiaSvyfR3DWK6 WeRV+AX8w7gyxOiSESRzbUco7TGImALfqvTXnmKOpZCQb1lGO+fdTczTiQ0vrYBxaDUqaYnkd MVI7Plv/DztQ0CSrAdyUcMYP0/OpNAYK7rJzvcibsYEvVAlcGhb++IwaC5pzJtIFVvcEctKqQ YqHNEDgffGejxVRKiA6I+Z8EQkEqWXp9JZsrRu/VvUngzeES1LKQVsbuliPeokM8Qg3F066fY zvfhOztsfNzOjKpbVym2ZsXIHCAm5h71tr7HzT4sY0OKrenq/4jHByrarIwZnLsMqPouLWhmB Ka3lTE6tNKTbjprue8MmIlj82gt+TeZG9ytjPWYLihbMcRRV3t+XXbDQr2T/1VDzAgaCO8ko+ HaSK+vF64qQ3sHlllAp3VEDBFPkvExCVnHzY6lWqW7a42T5s1cdJnQdy2n+Gj2W7MSQ8nOjDk aUlMN2lXmcyghuluhoPa3z3LhUDzAlIDsO4vKzHdLz8z9pWYxGJWwSvgUxK6mVdAVgvJI507I RbPHAo6+UVVvV4IU3QptTo= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=217.72.192.73; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson There are only a few differences in sparc32 vs sparc64. This fixes target_shmlba for sparc32plus, which is v9. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-8-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/target_syscall.h | 42 +++++++++++++++++++++-------- linux-user/sparc64/target_syscall.h | 36 +------------------------ 2 files changed, 32 insertions(+), 46 deletions(-) diff --git a/linux-user/sparc/target_syscall.h b/linux-user/sparc/target_sy= scall.h index d8ea04ea837a..15d531f38978 100644 --- a/linux-user/sparc/target_syscall.h +++ b/linux-user/sparc/target_syscall.h @@ -3,18 +3,34 @@ =20 #include "target_errno.h" =20 +#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32) struct target_pt_regs { - abi_ulong psr; - abi_ulong pc; - abi_ulong npc; - abi_ulong y; - abi_ulong u_regs[16]; + abi_ulong u_regs[16]; + abi_ulong tstate; + abi_ulong pc; + abi_ulong npc; + uint32_t y; + uint32_t magic; }; +#else +struct target_pt_regs { + abi_ulong psr; + abi_ulong pc; + abi_ulong npc; + abi_ulong y; + abi_ulong u_regs[16]; +}; +#endif =20 -#define UNAME_MACHINE "sparc" +#ifdef TARGET_SPARC64 +# define UNAME_MACHINE "sparc64" +#else +# define UNAME_MACHINE "sparc" +#endif #define UNAME_MINIMUM_RELEASE "2.6.32" =20 -/* SPARC kernels don't define this in their Kconfig, but they have the +/* + * SPARC kernels don't define this in their Kconfig, but they have the * same ABI as if they did, implemented by sparc-specific code which fishes * directly in the u_regs() struct for half the parameters in sparc_do_for= k() * and copy_thread(). @@ -25,20 +41,24 @@ struct target_pt_regs { #define TARGET_MCL_FUTURE 0x4000 #define TARGET_MCL_ONFAULT 0x8000 =20 -/* For SPARC SHMLBA is determined at runtime in the kernel, and - * libc has to runtime-detect it using the hwcaps (see glibc - * sysdeps/unix/sysv/linux/sparc/getshmlba; we follow the same - * logic here, though we know we're not the sparc v9 64-bit case). +/* + * For SPARC SHMLBA is determined at runtime in the kernel, and + * libc has to runtime-detect it using the hwcaps. + * See glibc sysdeps/unix/sysv/linux/sparc/getshmlba. */ #define TARGET_FORCE_SHMLBA =20 static inline abi_ulong target_shmlba(CPUSPARCState *env) { +#ifdef TARGET_SPARC64 + return MAX(TARGET_PAGE_SIZE, 16 * 1024); +#else if (!(env->def.features & CPU_FEATURE_FLUSH)) { return 64 * 1024; } else { return 256 * 1024; } +#endif } =20 #endif /* SPARC_TARGET_SYSCALL_H */ diff --git a/linux-user/sparc64/target_syscall.h b/linux-user/sparc64/targe= t_syscall.h index 696a68b1ed4e..164a5fc6322f 100644 --- a/linux-user/sparc64/target_syscall.h +++ b/linux-user/sparc64/target_syscall.h @@ -1,35 +1 @@ -#ifndef SPARC64_TARGET_SYSCALL_H -#define SPARC64_TARGET_SYSCALL_H - -#include "../sparc/target_errno.h" - -struct target_pt_regs { - abi_ulong u_regs[16]; - abi_ulong tstate; - abi_ulong pc; - abi_ulong npc; - abi_ulong y; - abi_ulong fprs; -}; - -#define UNAME_MACHINE "sparc64" -#define UNAME_MINIMUM_RELEASE "2.6.32" - -/* SPARC kernels don't define this in their Kconfig, but they have the - * same ABI as if they did, implemented by sparc-specific code which fishes - * directly in the u_regs() struct for half the parameters in sparc_do_for= k() - * and copy_thread(). - */ -#define TARGET_CLONE_BACKWARDS -#define TARGET_MINSIGSTKSZ 4096 -#define TARGET_MCL_CURRENT 0x2000 -#define TARGET_MCL_FUTURE 0x4000 -#define TARGET_MCL_ONFAULT 0x8000 - -#define TARGET_FORCE_SHMLBA - -static inline abi_ulong target_shmlba(CPUSPARCState *env) -{ - return MAX(TARGET_PAGE_SIZE, 16 * 1024); -} -#endif /* SPARC64_TARGET_SYSCALL_H */ +#include "../sparc/target_syscall.h" --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316869; cv=none; d=zohomail.com; s=zohoarc; b=Ayvnvbxly4mblFXPCzf85XQxmsM5CpjoMSJwqpKpbBR/q0ohngDj6Xd/FpzksVzsxu9DDvVwP1kYl9/asdP+0OCK9pj9+Ef8ZCbYOeQPO7Fq7n6BX78uvvcGuPUMLvsjM1J95z3zJ0mu12BNW6RqtdWuH1fUhHaL/xgh+n2WWlQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316869; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=QrU0R4+MjaqHnZGG5ahAsDJLIlHibI0q6LOwclpupAc=; b=Nb+TLa+XoNFNcwV+mGStgLp8qGzCpLM/80QqwgR1DPkL+Jp8sHQWBOGeICkbRPuQgP/qiaT65hkjHKcM6oeBxvh9HELOU/Aa9YctMrai60qWmtq6s1fSn6gSUrZ8cLY0eOND9/RD6zQHPjzyu1c5MarV1oU2o1UJR7S8qs3sX0Q= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316869059969.983161383916; Mon, 17 May 2021 22:47:49 -0700 (PDT) Received: from localhost ([::1]:58278 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisa4-0004tT-0z for importer@patchew.org; Tue, 18 May 2021 01:47:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38346) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKV-0006ry-EH for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:43 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:52141) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKT-0006wL-LM for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:43 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1Mf0uq-1lFrIP2lj8-00gXQ3; Tue, 18 May 2021 07:31:39 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 15/59] linux-user/sparc: Merge sparc64 target_elf.h Date: Tue, 18 May 2021 07:30:47 +0200 Message-Id: <20210518053131.87212-16-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:y0WpMoUJkFAn86t3/w26k8dqCcS0w2IIlRaYSqas3ZFf14toAeT hsUKkRPNvLQz/g8OMOGCFj/xYvyNEUGuB4AVKlr07Vg5G6RJ9nWHW+ai3+7Z2R8yJ5z8Mpl jOKsjVvf+gfy83+zareN9fJ8yfaWoMdN2/rBeraYBBsKferkgmG7Jj5t8Jbo42zHboN54am ZerU72i9Wn+ZeOlUZuICQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:+U0wW7jjOX8=:gS5sWBGKltgVGM3AvYDO77 tRiE0ZAW4TNAN7MJ7EZLJmEFMfT12doGmryO7CqkmspoQfP4MYyNRdY5g+24w5e5wizVdkqPl utNCCBSZ7UoLtEIEm6yEio6mVyuQsRWg9+ECJYmlA1XBv1KaNs8Z4iGhkcix7xGPw5atulW2T Fji5VRRWWKYvs/mY+BnbvHGrQt+zgVgopRNsuc2dueIV6PLTtFHQPjb19JlaKHMpLOPglAme/ oeJiSvFAfjay1xcbJ6T5HBQRqhtR4TGWKhbIqvWPXs8uMwBpRqN/PIIs9YEntXJpx1Cr6Q2YE pmoZMCPQ3y/LzAtLzsZIoL0T85JhzNaIbkFm1zbJIsIRZexFva6KJqnoSYAsPLZOjp/2HMliQ dyi/EgwmLfqcfx2TMYVOI3N7Rg1fohHeRPKqROSBod6IT88sNHiq+6iVxPKf3CCs0iOYEjhPK ntwy+iwf4A86Cgoll3UBGzbCsdLM6Cp5uBlgnKwTYCH17WdKXSE1FVJebFgSEphZ5ZeKA3kN3 EICg/zpC6zqg68YfS1lA04= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.17.24; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-9-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc64/target_elf.h | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/linux-user/sparc64/target_elf.h b/linux-user/sparc64/target_el= f.h index d6e388f1cf60..023b49b74375 100644 --- a/linux-user/sparc64/target_elf.h +++ b/linux-user/sparc64/target_elf.h @@ -1,14 +1 @@ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation, or (at your option) any - * later version. See the COPYING file in the top-level directory. - */ - -#ifndef SPARC64_TARGET_ELF_H -#define SPARC64_TARGET_ELF_H -static inline const char *cpu_get_model(uint32_t eflags) -{ - return "TI UltraSparc II"; -} -#endif +#include "../sparc/target_elf.h" --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316098; cv=none; d=zohomail.com; s=zohoarc; b=Vq5wD60+yn+72vvJt/W4Alfxwmu4OZ3Uen1DDAwbhZfWMlqLyz5ZMARnks9nKzfFqN4n9HbMhxq/nT5CKJAxAKLfgEugTKzXD/6z0ga/uTV86g8z2KyQoAxQTkPEof9ujtdPTXmlseNPIrhAPpzaJ1vldX+jVesokBeqTEYXoEI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316098; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=yWWXTh1Hbxk+I3QUwRZEbg/TQnxDZILf8UepXp5Wz1c=; b=kMpYvT5Jrqf21KQ4gtworikU5xyWkTVSY78kkPfsp0tOGmqS3mgPNIB6hrjH+78JAHWJsGZyEThONYBvSHwdeNf7UluzL3xFLLPz15Je+1NLJnMmiuQ9WMJwFEUnmez2QNCXe/A/rd8opoXLff+4AcBj2hhYd6bR4OBlpFE2LA0= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316098946740.8238646875611; Mon, 17 May 2021 22:34:58 -0700 (PDT) Received: from localhost ([::1]:51870 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisNd-0006lJ-U5 for importer@patchew.org; Tue, 18 May 2021 01:34:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38384) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKX-0006z1-3i for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:45 -0400 Received: from mout.kundenserver.de ([217.72.192.73]:48465) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKU-0006xr-9O for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:44 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MbBQU-1lC1Y40VGi-00bZLN; Tue, 18 May 2021 07:31:40 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 16/59] linux-user/sparc: Merge sparc64 target_structs.h Date: Tue, 18 May 2021 07:30:48 +0200 Message-Id: <20210518053131.87212-17-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:1/5e4r+zAZ+ZyPgD8jXSNjawGo4MFUClDNKmTbWeJtWfxREdX5J FwvI5FfodzP3FeRcOyBx1VGwbj1PD16t3hCEkt4t38OGZjZs75bO7/psqNo/yUzaie7D0dR KBi4n+IHjFBKBeFG51PSfwK1bVscj/JlGejX25GYRxU12GiSE2/BDNiBGH0+UFfos8OOycv 1g218OuBorcXsWUfRA3JA== X-UI-Out-Filterresults: notjunk:1;V03:K0:kIuN/lYzzcA=:jolnatv8X+N+Hek47Q/tuA bftBktlR13BMT3LrQqY0Mb8A2D+SbRlnpnP9pl62hB/ec65tsuuJTGHCmclxjE8CXNVIZMWxy lOEGgS+bTkHhDEh9QXq4dmQiOAuAHf8Y5fmARlRkUcvCCswHhvP38ponUTJBxuCqEmHjHjiQI wGHDYlFN24ONP2ZlcqgDf7xvuLuJD7wwMx0iCaf4n/UjGVxVVHOodz3zUumAWPPUPuDNy0B/i IY85ElRkJ4ZReBWMgKkU9loN8l85X7ZtuhPFLdff5B0rCU8LoXO+oFYlgmxHyYYU8pnnC3M54 N771VGM19H4kwCRIEIF00zv9yGxRHZQg7tcEdeobIIqBxrmHEjuIf3CNZymM2SRUXN42WoeZB 59oIu/pvKZlMpsQ5zonLtMfgLO8FkAQmDYKE1S4ScjuC6jPq3oHTlMycgAuTsGzWT8GHAQJEh NdE9uxPtZkvA3UqCF1nYUfUOuXhFh+rdUmjpMNEh9SDpE8hAChBenjbcehl3l14fRZ3GZ4rqZ lZzpwbQBKP3sY5finH2phA= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=217.72.192.73; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-10-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/target_structs.h | 34 +++++++---------- linux-user/sparc64/target_structs.h | 59 +---------------------------- 2 files changed, 14 insertions(+), 79 deletions(-) diff --git a/linux-user/sparc/target_structs.h b/linux-user/sparc/target_st= ructs.h index 995354075950..beeace8fb237 100644 --- a/linux-user/sparc/target_structs.h +++ b/linux-user/sparc/target_structs.h @@ -26,13 +26,10 @@ struct target_ipc_perm { abi_uint cuid; /* Creator's user ID. */ abi_uint cgid; /* Creator's group ID. */ #if TARGET_ABI_BITS =3D=3D 32 - abi_ushort __pad1; + abi_ushort __pad0; +#endif abi_ushort mode; /* Read/write permission. */ - abi_ushort __pad2; -#else - abi_ushort mode; abi_ushort __pad1; -#endif abi_ushort __seq; /* Sequence number. */ uint64_t __unused1; uint64_t __unused2; @@ -40,22 +37,17 @@ struct target_ipc_perm { =20 struct target_shmid_ds { struct target_ipc_perm shm_perm; /* operation permission struct */ -#if TARGET_ABI_BITS =3D=3D 32 - abi_uint __pad1; -#endif - abi_ulong shm_atime; /* time of last shmat() */ -#if TARGET_ABI_BITS =3D=3D 32 - abi_uint __pad2; -#endif - abi_ulong shm_dtime; /* time of last shmdt() */ -#if TARGET_ABI_BITS =3D=3D 32 - abi_uint __pad3; -#endif - abi_ulong shm_ctime; /* time of last change by shmctl()= */ - abi_long shm_segsz; /* size of segment in bytes */ - abi_ulong shm_cpid; /* pid of creator */ - abi_ulong shm_lpid; /* pid of last shmop */ - abi_long shm_nattch; /* number of current attaches */ + /* + * Note that sparc32 splits these into hi/lo parts. + * For simplicity in qemu, always use a 64-bit type. + */ + int64_t shm_atime; /* last attach time */ + int64_t shm_dtime; /* last detach time */ + int64_t shm_ctime; /* last change time */ + abi_ulong shm_segsz; /* size of segment in bytes */ + abi_int shm_cpid; /* pid of creator */ + abi_int shm_lpid; /* pid of last shmop */ + abi_ulong shm_nattch; /* number of current attaches */ abi_ulong __unused1; abi_ulong __unused2; }; diff --git a/linux-user/sparc64/target_structs.h b/linux-user/sparc64/targe= t_structs.h index 4a8ed48df742..cbcbc4602a69 100644 --- a/linux-user/sparc64/target_structs.h +++ b/linux-user/sparc64/target_structs.h @@ -1,58 +1 @@ -/* - * SPARC64 specific structures for linux-user - * - * Copyright (c) 2013 Fabrice Bellard - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, see . - */ -#ifndef SPARC64_TARGET_STRUCTS_H -#define SPARC64_TARGET_STRUCTS_H - -struct target_ipc_perm { - abi_int __key; /* Key. */ - abi_uint uid; /* Owner's user ID. */ - abi_uint gid; /* Owner's group ID. */ - abi_uint cuid; /* Creator's user ID. */ - abi_uint cgid; /* Creator's group ID. */ - abi_ushort mode; /* Read/write permission. */ - abi_ushort __pad1; - abi_ushort __seq; /* Sequence number. */ - abi_ushort __pad2; - abi_ulong __unused1; - abi_ulong __unused2; -}; - -struct target_shmid_ds { - struct target_ipc_perm shm_perm; /* operation permission struct */ - abi_long shm_segsz; /* size of segment in bytes */ - abi_ulong shm_atime; /* time of last shmat() */ -#if TARGET_ABI_BITS =3D=3D 32 - abi_ulong __unused1; -#endif - abi_ulong shm_dtime; /* time of last shmdt() */ -#if TARGET_ABI_BITS =3D=3D 32 - abi_ulong __unused2; -#endif - abi_ulong shm_ctime; /* time of last change by shmctl()= */ -#if TARGET_ABI_BITS =3D=3D 32 - abi_ulong __unused3; -#endif - abi_int shm_cpid; /* pid of creator */ - abi_int shm_lpid; /* pid of last shmop */ - abi_ulong shm_nattch; /* number of current attaches */ - abi_ulong __unused4; - abi_ulong __unused5; -}; - -#endif +#include "../sparc/target_structs.h" --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316221; cv=none; d=zohomail.com; s=zohoarc; b=RraJ2C5Ju2v5olwPZ/E2nkyu3SFvKlg7ys5V+FP3rdNxKO+e0yNEyrGfJPxuOU4iI+ekFeUY316MDEECwmkbxyazYeGpTeT6ongWRLZSrga+IGXPvGvv1IvAjpgu1OUIOCUt7zOtW/5G/MNYXBVnuMfe5qwDTBmYdlLz+t+bo0Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316221; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XqXZdoRvTQUvVpQHQda9mWJNRXyQRJ3RgwVX2zjfWIc=; b=eK3HVvyM093gTwljI2ivgY5g0TjjSI6iCOZQtNuRitvTAuTLXYOqsjKtzvoMXjTaySwOOIvh8sJVsWRqR4myYirkt7ZQDVnkVT9KdUdkJuLQcR0OR5CAPv4+d03c+F8VJgUBQ22+UKXMDNWmnsq8xnwMREMXx8LIvDJLPhB6jN4= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316221651845.9401882130126; Mon, 17 May 2021 22:37:01 -0700 (PDT) Received: from localhost ([::1]:60762 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisPc-0004Hf-H6 for importer@patchew.org; Tue, 18 May 2021 01:37:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38416) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKY-00073q-Dw for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:46 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:43135) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKU-0006zI-Uy for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:46 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M8xsm-1lnoXS2b6U-0067Cx; Tue, 18 May 2021 07:31:40 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 17/59] linux-user/sparc: Merge sparc64 termbits.h Date: Tue, 18 May 2021 07:30:49 +0200 Message-Id: <20210518053131.87212-18-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:TnsCHLvYzMpIlf030xEDAhbVuqdOVh8mgB6EjZoKgKjo+3KNj1M mcdfL2bdllmMNNqfUJyN2xLxAbE9DVg3Xe73B3zKCQLH2nRUZIUQELLXUO//9PAyzOscCjp 8fzlmfalw/sz1tW+kOnSm52JQt3eZHI8SplyQOyd11Fup3+x4YpMpW+IlOW04zvj4SgF1UK 4y7GIQhGqlvkMzzPySjRQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:TfXNc3Th2YU=:45mZDDLnqlAofL9GBDPDsv V7mYvXzy9+zyYCS1rBkDL+JoHLcebuYNG7wgI0L9iauS5kXUQUWoOq/WJnNngzfxtqFjVPZdm PO/uuqHzcMX66BfKhSAen34+jm0W9h+QYaUYiEcv8dnVAFJQJUes5h0KXg2QVARt0ItnaMl1K HaYZkyr5fbLwi88jRwMENjD3h/u92VBCGiTrkKJYDAeROQP0Xya2UarIlr6t3W5yOerN4L/o/ HMJYIx2mngcDenXcCuIVKxi5+Em8WcdBNVFT79L159ZeRWSPnkLd2jNDaE6UnOwxNLaGbOjpv lOAnmwXJdCabyNXRPxMjsWat/5X4+jA4MUaajtcOsAd5b54X6l/Lo0/NCQ3blq7MSWZCVK6Z6 +zYo344xTVn0Gb70rsRi5e4akxjVP69wSlPOpOfgceM472Pne58boTPQXVfP3WgQK0HTOKss/ CWfSLlHujRpcZGm6SD40bKfWqY6Xp/FUzW2GFtW2zu/l70b/gIefWJIvi8zpSdUBEWovdpb4v zJE7cdTWeQablPmHoTxCBQ= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.17.24; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-11-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc64/termbits.h | 292 +--------------------------------- 1 file changed, 1 insertion(+), 291 deletions(-) diff --git a/linux-user/sparc64/termbits.h b/linux-user/sparc64/termbits.h index 1ab1e80db548..54ddfee3ba34 100644 --- a/linux-user/sparc64/termbits.h +++ b/linux-user/sparc64/termbits.h @@ -1,291 +1 @@ -/* from asm/termbits.h */ - -#ifndef LINUX_USER_SPARC64_TERMBITS_H -#define LINUX_USER_SPARC64_TERMBITS_H - -#define TARGET_NCCS 19 - -typedef unsigned char target_cc_t; /* cc_t */ -typedef unsigned int target_speed_t; /* speed_t */ -typedef unsigned int target_tcflag_t; /* tcflag_t */ - -struct target_termios { - target_tcflag_t c_iflag; /* input mode flags */ - target_tcflag_t c_oflag; /* output mode flags */ - target_tcflag_t c_cflag; /* control mode flags */ - target_tcflag_t c_lflag; /* local mode flags */ - target_cc_t c_line; /* line discipline */ - target_cc_t c_cc[TARGET_NCCS]; /* control characters */ -}; - - -/* c_cc characters */ -#define TARGET_VINTR 0 -#define TARGET_VQUIT 1 -#define TARGET_VERASE 2 -#define TARGET_VKILL 3 -#define TARGET_VEOF 4 -#define TARGET_VEOL 5 -#define TARGET_VEOL2 6 -#define TARGET_VSWTC 7 -#define TARGET_VSTART 8 -#define TARGET_VSTOP 9 - -#define TARGET_VSUSP 10 -#define TARGET_VDSUSP 11 /* SunOS POSIX nicety I do believe... */ -#define TARGET_VREPRINT 12 -#define TARGET_VDISCARD 13 -#define TARGET_VWERASE 14 -#define TARGET_VLNEXT 15 - -/* Kernel keeps vmin/vtime separated, user apps assume vmin/vtime is - * shared with eof/eol - */ -#define TARGET_VMIN TARGET_VEOF -#define TARGET_VTIME TARGET_VEOL - -/* c_iflag bits */ -#define TARGET_IGNBRK 0x00000001 -#define TARGET_BRKINT 0x00000002 -#define TARGET_IGNPAR 0x00000004 -#define TARGET_PARMRK 0x00000008 -#define TARGET_INPCK 0x00000010 -#define TARGET_ISTRIP 0x00000020 -#define TARGET_INLCR 0x00000040 -#define TARGET_IGNCR 0x00000080 -#define TARGET_ICRNL 0x00000100 -#define TARGET_IUCLC 0x00000200 -#define TARGET_IXON 0x00000400 -#define TARGET_IXANY 0x00000800 -#define TARGET_IXOFF 0x00001000 -#define TARGET_IMAXBEL 0x00002000 -#define TARGET_IUTF8 0x00004000 - -/* c_oflag bits */ -#define TARGET_OPOST 0x00000001 -#define TARGET_OLCUC 0x00000002 -#define TARGET_ONLCR 0x00000004 -#define TARGET_OCRNL 0x00000008 -#define TARGET_ONOCR 0x00000010 -#define TARGET_ONLRET 0x00000020 -#define TARGET_OFILL 0x00000040 -#define TARGET_OFDEL 0x00000080 -#define TARGET_NLDLY 0x00000100 -#define TARGET_NL0 0x00000000 -#define TARGET_NL1 0x00000100 -#define TARGET_CRDLY 0x00000600 -#define TARGET_CR0 0x00000000 -#define TARGET_CR1 0x00000200 -#define TARGET_CR2 0x00000400 -#define TARGET_CR3 0x00000600 -#define TARGET_TABDLY 0x00001800 -#define TARGET_TAB0 0x00000000 -#define TARGET_TAB1 0x00000800 -#define TARGET_TAB2 0x00001000 -#define TARGET_TAB3 0x00001800 -#define TARGET_XTABS 0x00001800 -#define TARGET_BSDLY 0x00002000 -#define TARGET_BS0 0x00000000 -#define TARGET_BS1 0x00002000 -#define TARGET_VTDLY 0x00004000 -#define TARGET_VT0 0x00000000 -#define TARGET_VT1 0x00004000 -#define TARGET_FFDLY 0x00008000 -#define TARGET_FF0 0x00000000 -#define TARGET_FF1 0x00008000 -#define TARGET_PAGEOUT 0x00010000 /* SUNOS specific */ -#define TARGET_WRAP 0x00020000 /* SUNOS specific */ - -/* c_cflag bit meaning */ -#define TARGET_CBAUD 0x0000100f -#define TARGET_B0 0x00000000 /* hang up */ -#define TARGET_B50 0x00000001 -#define TARGET_B75 0x00000002 -#define TARGET_B110 0x00000003 -#define TARGET_B134 0x00000004 -#define TARGET_B150 0x00000005 -#define TARGET_B200 0x00000006 -#define TARGET_B300 0x00000007 -#define TARGET_B600 0x00000008 -#define TARGET_B1200 0x00000009 -#define TARGET_B1800 0x0000000a -#define TARGET_B2400 0x0000000b -#define TARGET_B4800 0x0000000c -#define TARGET_B9600 0x0000000d -#define TARGET_B19200 0x0000000e -#define TARGET_B38400 0x0000000f -#define TARGET_EXTA B19200 -#define TARGET_EXTB B38400 -#define TARGET_CSIZE 0x00000030 -#define TARGET_CS5 0x00000000 -#define TARGET_CS6 0x00000010 -#define TARGET_CS7 0x00000020 -#define TARGET_CS8 0x00000030 -#define TARGET_CSTOPB 0x00000040 -#define TARGET_CREAD 0x00000080 -#define TARGET_PARENB 0x00000100 -#define TARGET_PARODD 0x00000200 -#define TARGET_HUPCL 0x00000400 -#define TARGET_CLOCAL 0x00000800 -#define TARGET_CBAUDEX 0x00001000 -/* We'll never see these speeds with the Zilogs, but for completeness... */ -#define TARGET_B57600 0x00001001 -#define TARGET_B115200 0x00001002 -#define TARGET_B230400 0x00001003 -#define TARGET_B460800 0x00001004 -/* This is what we can do with the Zilogs. */ -#define TARGET_B76800 0x00001005 -/* This is what we can do with the SAB82532. */ -#define TARGET_B153600 0x00001006 -#define TARGET_B307200 0x00001007 -#define TARGET_B614400 0x00001008 -#define TARGET_B921600 0x00001009 -/* And these are the rest... */ -#define TARGET_B500000 0x0000100a -#define TARGET_B576000 0x0000100b -#define TARGET_B1000000 0x0000100c -#define TARGET_B1152000 0x0000100d -#define TARGET_B1500000 0x0000100e -#define TARGET_B2000000 0x0000100f -/* These have totally bogus values and nobody uses them - so far. Later on we'd have to use say 0x10000x and - adjust CBAUD constant and drivers accordingly. -#define B2500000 0x00001010 -#define B3000000 0x00001011 -#define B3500000 0x00001012 -#define B4000000 0x00001013 */ -#define TARGET_CIBAUD 0x100f0000 /* input baud rate (not used) */ -#define TARGET_CMSPAR 0x40000000 /* mark or space (stick) parity */ -#define TARGET_CRTSCTS 0x80000000 /* flow control */ - -/* c_lflag bits */ -#define TARGET_ISIG 0x00000001 -#define TARGET_ICANON 0x00000002 -#define TARGET_XCASE 0x00000004 -#define TARGET_ECHO 0x00000008 -#define TARGET_ECHOE 0x00000010 -#define TARGET_ECHOK 0x00000020 -#define TARGET_ECHONL 0x00000040 -#define TARGET_NOFLSH 0x00000080 -#define TARGET_TOSTOP 0x00000100 -#define TARGET_ECHOCTL 0x00000200 -#define TARGET_ECHOPRT 0x00000400 -#define TARGET_ECHOKE 0x00000800 -#define TARGET_DEFECHO 0x00001000 /* SUNOS thing, what is it? */ -#define TARGET_FLUSHO 0x00002000 -#define TARGET_PENDIN 0x00004000 -#define TARGET_IEXTEN 0x00008000 -#define TARGET_EXTPROC 0x00010000 - -/* ioctls */ - -/* Big T */ -#define TARGET_TCGETA TARGET_IOR('T', 1, struct target_termio) -#define TARGET_TCSETA TARGET_IOW('T', 2, struct target_termio) -#define TARGET_TCSETAW TARGET_IOW('T', 3, struct target_termio) -#define TARGET_TCSETAF TARGET_IOW('T', 4, struct target_termio) -#define TARGET_TCSBRK TARGET_IO('T', 5) -#define TARGET_TCXONC TARGET_IO('T', 6) -#define TARGET_TCFLSH TARGET_IO('T', 7) -#define TARGET_TCGETS TARGET_IOR('T', 8, struct target_termios) -#define TARGET_TCSETS TARGET_IOW('T', 9, struct target_termios) -#define TARGET_TCSETSW TARGET_IOW('T', 10, struct target_termios) -#define TARGET_TCSETSF TARGET_IOW('T', 11, struct target_termios) - -/* Note that all the ioctls that are not available in Linux have a - * double underscore on the front to: a) avoid some programs to - * thing we support some ioctls under Linux (autoconfiguration stuff) - */ -/* Little t */ -#define TARGET_TIOCGETD TARGET_IOR('t', 0, int) -#define TARGET_TIOCSETD TARGET_IOW('t', 1, int) -//#define __TIOCHPCL _IO('t', 2) /* SunOS Specific */ -//#define __TIOCMODG _IOR('t', 3, int) /* SunOS Specific */ -//#define __TIOCMODS _IOW('t', 4, int) /* SunOS Specific */ -//#define __TIOCGETP _IOR('t', 8, struct sgttyb) /* SunOS Specific = */ -//#define __TIOCSETP _IOW('t', 9, struct sgttyb) /* SunOS Specific = */ -//#define __TIOCSETN _IOW('t', 10, struct sgttyb) /* SunOS Specific= */ -#define TARGET_TIOCEXCL TARGET_IO('t', 13) -#define TARGET_TIOCNXCL TARGET_IO('t', 14) -//#define __TIOCFLUSH _IOW('t', 16, int) /* SunOS Specific */ -//#define __TIOCSETC _IOW('t', 17, struct tchars) /* SunOS Specific= */ -//#define __TIOCGETC _IOR('t', 18, struct tchars) /* SunOS Specific= */ -//#define __TIOCTCNTL _IOW('t', 32, int) /* SunOS Specific */ -//#define __TIOCSIGNAL _IOW('t', 33, int) /* SunOS Specific */ -//#define __TIOCSETX _IOW('t', 34, int) /* SunOS Specific */ -//#define __TIOCGETX _IOR('t', 35, int) /* SunOS Specific */ -#define TARGET_TIOCCONS TARGET_IO('t', 36) -//#define __TIOCSSIZE _IOW('t', 37, struct sunos_ttysize) /* SunOS Spe= cific */ -//#define __TIOCGSIZE _IOR('t', 38, struct sunos_ttysize) /* SunOS Spe= cific */ -#define TARGET_TIOCGSOFTCAR TARGET_IOR('t', 100, int) -#define TARGET_TIOCSSOFTCAR TARGET_IOW('t', 101, int) -//#define __TIOCUCNTL _IOW('t', 102, int) /* SunOS Specific */ -#define TARGET_TIOCSWINSZ TARGET_IOW('t', 103, struct winsize) -#define TARGET_TIOCGWINSZ TARGET_IOR('t', 104, struct winsize) -//#define __TIOCREMOTE _IOW('t', 105, int) /* SunOS Specific */ -#define TARGET_TIOCMGET TARGET_IOR('t', 106, int) -#define TARGET_TIOCMBIC TARGET_IOW('t', 107, int) -#define TARGET_TIOCMBIS TARGET_IOW('t', 108, int) -#define TARGET_TIOCMSET TARGET_IOW('t', 109, int) -#define TARGET_TIOCSTART TARGET_IO('t', 110) -#define TARGET_TIOCSTOP TARGET_IO('t', 111) -#define TARGET_TIOCPKT TARGET_IOW('t', 112, int) -#define TARGET_TIOCNOTTY TARGET_IO('t', 113) -#define TARGET_TIOCSTI TARGET_IOW('t', 114, char) -#define TARGET_TIOCOUTQ TARGET_IOR('t', 115, int) -//#define __TIOCGLTC _IOR('t', 116, struct ltchars) /* SunOS Specif= ic */ -//#define __TIOCSLTC _IOW('t', 117, struct ltchars) /* SunOS Specif= ic */ -/* 118 is the non-posix setpgrp tty ioctl */ -/* 119 is the non-posix getpgrp tty ioctl */ -//#define __TIOCCDTR TARGET_IO('t', 120) /* SunOS Specific */ -//#define __TIOCSDTR TARGET_IO('t', 121) /* SunOS Specific */ -#define TARGET_TIOCCBRK TARGET_IO('t', 122) -#define TARGET_TIOCSBRK TARGET_IO('t', 123) -//#define __TIOCLGET TARGET_IOW('t', 124, int) /* SunOS Specific */ -//#define __TIOCLSET TARGET_IOW('t', 125, int) /* SunOS Specific */ -//#define __TIOCLBIC TARGET_IOW('t', 126, int) /* SunOS Specific */ -//#define __TIOCLBIS TARGET_IOW('t', 127, int) /* SunOS Specific */ -//#define __TIOCISPACE TARGET_IOR('t', 128, int) /* SunOS Specific */ -//#define __TIOCISIZE TARGET_IOR('t', 129, int) /* SunOS Specific */ -#define TARGET_TIOCSPGRP TARGET_IOW('t', 130, int) -#define TARGET_TIOCGPGRP TARGET_IOR('t', 131, int) -#define TARGET_TIOCSCTTY TARGET_IO('t', 132) -#define TARGET_TIOCGSID TARGET_IOR('t', 133, int) -/* Get minor device of a pty master's FD -- Solaris equiv is ISPTM */ -#define TARGET_TIOCGPTN TARGET_IOR('t', 134, unsigned int) /* Get Pty Numb= er */ -#define TARGET_TIOCSPTLCK TARGET_IOW('t', 135, int) /* Lock/unlock PTY */ -#define TARGET_TIOCGPTPEER TARGET_IO('t', 137) /* Safely open the sla= ve */ - -/* Little f */ -#define TARGET_FIOCLEX TARGET_IO('f', 1) -#define TARGET_FIONCLEX TARGET_IO('f', 2) -#define TARGET_FIOASYNC TARGET_IOW('f', 125, int) -#define TARGET_FIONBIO TARGET_IOW('f', 126, int) -#define TARGET_FIONREAD TARGET_IOR('f', 127, int) -#define TARGET_TIOCINQ TARGET_FIONREAD - -/* SCARY Rutgers local SunOS kernel hackery, perhaps I will support it - * someday. This is completely bogus, I know... - */ -//#define __TCGETSTAT TARGET_IO('T', 200) /* Rutgers specific */ -//#define __TCSETSTAT TARGET_IO('T', 201) /* Rutgers specific */ - -/* Linux specific, no SunOS equivalent. */ -#define TARGET_TIOCLINUX 0x541C -#define TARGET_TIOCGSERIAL 0x541E -#define TARGET_TIOCSSERIAL 0x541F -#define TARGET_TCSBRKP 0x5425 -#define TARGET_TIOCTTYGSTRUCT 0x5426 -#define TARGET_TIOCSERCONFIG 0x5453 -#define TARGET_TIOCSERGWILD 0x5454 -#define TARGET_TIOCSERSWILD 0x5455 -#define TARGET_TIOCGLCKTRMIOS 0x5456 -#define TARGET_TIOCSLCKTRMIOS 0x5457 -#define TARGET_TIOCSERGSTRUCT 0x5458 /* For debugging only */ -#define TARGET_TIOCSERGETLSR 0x5459 /* Get line status register */ -#define TARGET_TIOCSERGETMULTI 0x545A /* Get multiport config */ -#define TARGET_TIOCSERSETMULTI 0x545B /* Set multiport config */ -#define TARGET_TIOCMIWAIT 0x545C /* Wait input */ -#define TARGET_TIOCGICOUNT 0x545D /* Read serial port inline interrupt cou= nts */ - -#endif +#include "../sparc/termbits.h" --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317300; cv=none; d=zohomail.com; s=zohoarc; b=E+gdS3eTlMBhCgynuzpGjN6LD+v3nVxOA6KTpBNDnu8tYchNQ5yBxf0ePuJaingWf8vNfFc8W330qPfAzGaR/OlP3uctQ5IfrBzzDc12x88br1UupgjLMT+2NAvTJatn3rbYxHDtqCwoMTYbOH/8HoZTKGGBoyXt5uY2jErh1jc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317300; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4D32jxnjpkkoeXqWlVkLVpoMfRWAUqRU6wkDiQQR2Gk=; b=Yd41FD4wfRzlBLuJfBpzy+CMcr8U6VzhdoEMBmUy41DjDuLkOQptAszLElkFwhrXYvb/WnIqiCmKwFlZil4PDVp1uUZ6DglAKt7i1mAzR3H/x//OTSKL4GGQQ3O7e8Gn1xHR1LII2wpfpMHnF7kQaWicl1UX6DEPDOVmmE+8Lbo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317300961104.25300477538326; Mon, 17 May 2021 22:55:00 -0700 (PDT) Received: from localhost ([::1]:46934 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lish1-0007w6-Tf for importer@patchew.org; Tue, 18 May 2021 01:54:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38490) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKa-0007Dz-Ng for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:48 -0400 Received: from mout.kundenserver.de ([212.227.17.24]:50089) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKV-00070D-U4 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:48 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M6VRf-1lpBqe0uDJ-006vU8; Tue, 18 May 2021 07:31:41 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 18/59] linux-user/sparc: Merge sparc64/ into sparc/ Date: Tue, 18 May 2021 07:30:50 +0200 Message-Id: <20210518053131.87212-19-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:SQtVYMl6rxqFBrgFzcbxWXLNAMfq62gNOqfUalpu/QYcs9LKop7 9Xj2+WOxSq6pBxvF5BXUF7R4Pm/0FLSF2R7ez+2mLIEg//ZA45OnoQS3Ob3byzgqGxwe4cT qOmxad+DCXDd/cyu0A/1laeZ88A3NnrkRr+vD2SmoyR/vg10AER6Em/xDTRsmVliQLA+seT M+8i/QAmwLgEh+kvm4eBQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:xnTLwYff4S4=:jiNuXoJvyttHz66PVNCmHY t4qWLhDU53yAqXiM6augBJb1F6qVBKqfaW19CpdMHEKqO4jyroRQMAZs9me/hRVEVzPwWaw1e QdotSA3BErNvxHO7z4Agoj/97z9yZXEQKDOT/30Yrgh0BLzxMJnAk85cCAU1JVEssErcBZPMH UTOSxSfyNTnPAgQmTL86QNwLvj2cV3a+MDC9yzNFOZDNjWOxlv3SdUyMgUK3i6GR6osN2PuF0 5ERpm5sObk97Lr54wO31vsD2rlU9jGoIx7Ygh4Y9bbtw3i0R4VAx42vW6zPs5Tihk80bXGM/h 2HWHqosLVYpClMYE1LkU0Srf6y+hf5WEK3S1xNKtQSHssbqj38VawoBKUoribKmyuGcoGAg0p 2kioU+2KOjx5VVsz9qKq6AMwote0iVEIflKSfcmcZgLpTXkWZoD/DrBpHfJcz1zW3E9Baf6zT 3lytpWanVi28dbSy2lj4eceMco9D8qcAGSsH34H8GJcuphecgDOz+TAUQ8OrI2RYDMuei3d+R lnE8oWl9WJh5O2qYqjh6k4= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.17.24; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson All of the source and header files already defer to sparc via #include. The syscall.tbl and syscallhdr.sh files could not do the same, but are identical. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-12-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- .../targets/sparc64-linux-user.mak | 1 + linux-user/meson.build | 1 - linux-user/sparc64/cpu_loop.c | 20 - linux-user/sparc64/meson.build | 5 - linux-user/sparc64/signal.c | 19 - linux-user/sparc64/sockbits.h | 1 - linux-user/sparc64/syscall.tbl | 487 ------------------ linux-user/sparc64/syscallhdr.sh | 32 -- linux-user/sparc64/target_cpu.h | 1 - linux-user/sparc64/target_elf.h | 1 - linux-user/sparc64/target_fcntl.h | 1 - linux-user/sparc64/target_signal.h | 1 - linux-user/sparc64/target_structs.h | 1 - linux-user/sparc64/target_syscall.h | 1 - linux-user/sparc64/termbits.h | 1 - 15 files changed, 1 insertion(+), 572 deletions(-) delete mode 100644 linux-user/sparc64/cpu_loop.c delete mode 100644 linux-user/sparc64/meson.build delete mode 100644 linux-user/sparc64/signal.c delete mode 100644 linux-user/sparc64/sockbits.h delete mode 100644 linux-user/sparc64/syscall.tbl delete mode 100644 linux-user/sparc64/syscallhdr.sh delete mode 100644 linux-user/sparc64/target_cpu.h delete mode 100644 linux-user/sparc64/target_elf.h delete mode 100644 linux-user/sparc64/target_fcntl.h delete mode 100644 linux-user/sparc64/target_signal.h delete mode 100644 linux-user/sparc64/target_structs.h delete mode 100644 linux-user/sparc64/target_syscall.h delete mode 100644 linux-user/sparc64/termbits.h diff --git a/default-configs/targets/sparc64-linux-user.mak b/default-confi= gs/targets/sparc64-linux-user.mak index 846924201ae1..9d23ab4a266e 100644 --- a/default-configs/targets/sparc64-linux-user.mak +++ b/default-configs/targets/sparc64-linux-user.mak @@ -1,5 +1,6 @@ TARGET_ARCH=3Dsparc64 TARGET_BASE_ARCH=3Dsparc +TARGET_ABI_DIR=3Dsparc TARGET_SYSTBL_ABI=3Dcommon,64 TARGET_SYSTBL=3Dsyscall.tbl TARGET_ALIGNED_ONLY=3Dy diff --git a/linux-user/meson.build b/linux-user/meson.build index 7fe28d659eff..9549f81682d5 100644 --- a/linux-user/meson.build +++ b/linux-user/meson.build @@ -32,7 +32,6 @@ subdir('mips') subdir('ppc') subdir('s390x') subdir('sh4') -subdir('sparc64') subdir('sparc') subdir('x86_64') subdir('xtensa') diff --git a/linux-user/sparc64/cpu_loop.c b/linux-user/sparc64/cpu_loop.c deleted file mode 100644 index 4fd44e1b1ebd..000000000000 --- a/linux-user/sparc64/cpu_loop.c +++ /dev/null @@ -1,20 +0,0 @@ -/* - * qemu user cpu loop - * - * Copyright (c) 2003-2008 Fabrice Bellard - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include "../sparc/cpu_loop.c" diff --git a/linux-user/sparc64/meson.build b/linux-user/sparc64/meson.build deleted file mode 100644 index 9527a40ed440..000000000000 --- a/linux-user/sparc64/meson.build +++ /dev/null @@ -1,5 +0,0 @@ -syscall_nr_generators +=3D { - 'sparc64': generator(sh, - arguments: [ meson.current_source_dir() / 'syscallh= dr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ], - output: '@BASENAME@_nr.h') -} diff --git a/linux-user/sparc64/signal.c b/linux-user/sparc64/signal.c deleted file mode 100644 index 170ebac232c0..000000000000 --- a/linux-user/sparc64/signal.c +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Emulation of Linux signals - * - * Copyright (c) 2003 Fabrice Bellard - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ -#include "../sparc/signal.c" diff --git a/linux-user/sparc64/sockbits.h b/linux-user/sparc64/sockbits.h deleted file mode 100644 index 658899e4d363..000000000000 --- a/linux-user/sparc64/sockbits.h +++ /dev/null @@ -1 +0,0 @@ -#include "../sparc/sockbits.h" diff --git a/linux-user/sparc64/syscall.tbl b/linux-user/sparc64/syscall.tbl deleted file mode 100644 index 4af114e84f20..000000000000 --- a/linux-user/sparc64/syscall.tbl +++ /dev/null @@ -1,487 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note -# -# system call numbers and entry vectors for sparc -# -# The format is: -# -# -# The can be common, 64, or 32 for this file. -# -0 common restart_syscall sys_restart_syscall -1 32 exit sys_exit sparc_exit -1 64 exit sparc_exit -2 common fork sys_fork -3 common read sys_read -4 common write sys_write -5 common open sys_open compat_sys_open -6 common close sys_close -7 common wait4 sys_wait4 compat_sys_wait4 -8 common creat sys_creat -9 common link sys_link -10 common unlink sys_unlink -11 32 execv sunos_execv -11 64 execv sys_nis_syscall -12 common chdir sys_chdir -13 32 chown sys_chown16 -13 64 chown sys_chown -14 common mknod sys_mknod -15 common chmod sys_chmod -16 32 lchown sys_lchown16 -16 64 lchown sys_lchown -17 common brk sys_brk -18 common perfctr sys_nis_syscall -19 common lseek sys_lseek compat_sys_lseek -20 common getpid sys_getpid -21 common capget sys_capget -22 common capset sys_capset -23 32 setuid sys_setuid16 -23 64 setuid sys_setuid -24 32 getuid sys_getuid16 -24 64 getuid sys_getuid -25 common vmsplice sys_vmsplice compat_sys_vmsplice -26 common ptrace sys_ptrace compat_sys_ptrace -27 common alarm sys_alarm -28 common sigaltstack sys_sigaltstack compat_sys_sigaltstack -29 32 pause sys_pause -29 64 pause sys_nis_syscall -30 32 utime sys_utime32 -30 64 utime sys_utime -31 32 lchown32 sys_lchown -32 32 fchown32 sys_fchown -33 common access sys_access -34 common nice sys_nice -35 32 chown32 sys_chown -36 common sync sys_sync -37 common kill sys_kill -38 common stat sys_newstat compat_sys_newstat -39 32 sendfile sys_sendfile compat_sys_sendfile -39 64 sendfile sys_sendfile64 -40 common lstat sys_newlstat compat_sys_newlstat -41 common dup sys_dup -42 common pipe sys_sparc_pipe -43 common times sys_times compat_sys_times -44 32 getuid32 sys_getuid -45 common umount2 sys_umount -46 32 setgid sys_setgid16 -46 64 setgid sys_setgid -47 32 getgid sys_getgid16 -47 64 getgid sys_getgid -48 common signal sys_signal -49 32 geteuid sys_geteuid16 -49 64 geteuid sys_geteuid -50 32 getegid sys_getegid16 -50 64 getegid sys_getegid -51 common acct sys_acct -52 64 memory_ordering sys_memory_ordering -53 32 getgid32 sys_getgid -54 common ioctl sys_ioctl compat_sys_ioctl -55 common reboot sys_reboot -56 32 mmap2 sys_mmap2 sys32_mmap2 -57 common symlink sys_symlink -58 common readlink sys_readlink -59 32 execve sys_execve sys32_execve -59 64 execve sys64_execve -60 common umask sys_umask -61 common chroot sys_chroot -62 common fstat sys_newfstat compat_sys_newfstat -63 common fstat64 sys_fstat64 compat_sys_fstat64 -64 common getpagesize sys_getpagesize -65 common msync sys_msync -66 common vfork sys_vfork -67 common pread64 sys_pread64 compat_sys_pread64 -68 common pwrite64 sys_pwrite64 compat_sys_pwrite64 -69 32 geteuid32 sys_geteuid -70 32 getegid32 sys_getegid -71 common mmap sys_mmap -72 32 setreuid32 sys_setreuid -73 32 munmap sys_munmap -73 64 munmap sys_64_munmap -74 common mprotect sys_mprotect -75 common madvise sys_madvise -76 common vhangup sys_vhangup -77 32 truncate64 sys_truncate64 compat_sys_truncate64 -78 common mincore sys_mincore -79 32 getgroups sys_getgroups16 -79 64 getgroups sys_getgroups -80 32 setgroups sys_setgroups16 -80 64 setgroups sys_setgroups -81 common getpgrp sys_getpgrp -82 32 setgroups32 sys_setgroups -83 common setitimer sys_setitimer compat_sys_setitimer -84 32 ftruncate64 sys_ftruncate64 compat_sys_ftruncate64 -85 common swapon sys_swapon -86 common getitimer sys_getitimer compat_sys_getitimer -87 32 setuid32 sys_setuid -88 common sethostname sys_sethostname -89 32 setgid32 sys_setgid -90 common dup2 sys_dup2 -91 32 setfsuid32 sys_setfsuid -92 common fcntl sys_fcntl compat_sys_fcntl -93 common select sys_select -94 32 setfsgid32 sys_setfsgid -95 common fsync sys_fsync -96 common setpriority sys_setpriority -97 common socket sys_socket -98 common connect sys_connect -99 common accept sys_accept -100 common getpriority sys_getpriority -101 common rt_sigreturn sys_rt_sigreturn sys32_rt_sigreturn -102 common rt_sigaction sys_rt_sigaction compat_sys_rt_sigaction -103 common rt_sigprocmask sys_rt_sigprocmask compat_sys_rt_sigprocmask -104 common rt_sigpending sys_rt_sigpending compat_sys_rt_sigpending -105 32 rt_sigtimedwait sys_rt_sigtimedwait_time32 compat_sys_rt_sigtimedw= ait_time32 -105 64 rt_sigtimedwait sys_rt_sigtimedwait -106 common rt_sigqueueinfo sys_rt_sigqueueinfo compat_sys_rt_sigqueueinfo -107 common rt_sigsuspend sys_rt_sigsuspend compat_sys_rt_sigsuspend -108 32 setresuid32 sys_setresuid -108 64 setresuid sys_setresuid -109 32 getresuid32 sys_getresuid -109 64 getresuid sys_getresuid -110 32 setresgid32 sys_setresgid -110 64 setresgid sys_setresgid -111 32 getresgid32 sys_getresgid -111 64 getresgid sys_getresgid -112 32 setregid32 sys_setregid -113 common recvmsg sys_recvmsg compat_sys_recvmsg -114 common sendmsg sys_sendmsg compat_sys_sendmsg -115 32 getgroups32 sys_getgroups -116 common gettimeofday sys_gettimeofday compat_sys_gettimeofday -117 common getrusage sys_getrusage compat_sys_getrusage -118 common getsockopt sys_getsockopt sys_getsockopt -119 common getcwd sys_getcwd -120 common readv sys_readv compat_sys_readv -121 common writev sys_writev compat_sys_writev -122 common settimeofday sys_settimeofday compat_sys_settimeofday -123 32 fchown sys_fchown16 -123 64 fchown sys_fchown -124 common fchmod sys_fchmod -125 common recvfrom sys_recvfrom -126 32 setreuid sys_setreuid16 -126 64 setreuid sys_setreuid -127 32 setregid sys_setregid16 -127 64 setregid sys_setregid -128 common rename sys_rename -129 common truncate sys_truncate compat_sys_truncate -130 common ftruncate sys_ftruncate compat_sys_ftruncate -131 common flock sys_flock -132 common lstat64 sys_lstat64 compat_sys_lstat64 -133 common sendto sys_sendto -134 common shutdown sys_shutdown -135 common socketpair sys_socketpair -136 common mkdir sys_mkdir -137 common rmdir sys_rmdir -138 32 utimes sys_utimes_time32 -138 64 utimes sys_utimes -139 common stat64 sys_stat64 compat_sys_stat64 -140 common sendfile64 sys_sendfile64 -141 common getpeername sys_getpeername -142 32 futex sys_futex_time32 -142 64 futex sys_futex -143 common gettid sys_gettid -144 common getrlimit sys_getrlimit compat_sys_getrlimit -145 common setrlimit sys_setrlimit compat_sys_setrlimit -146 common pivot_root sys_pivot_root -147 common prctl sys_prctl -148 common pciconfig_read sys_pciconfig_read -149 common pciconfig_write sys_pciconfig_write -150 common getsockname sys_getsockname -151 common inotify_init sys_inotify_init -152 common inotify_add_watch sys_inotify_add_watch -153 common poll sys_poll -154 common getdents64 sys_getdents64 -155 32 fcntl64 sys_fcntl64 compat_sys_fcntl64 -156 common inotify_rm_watch sys_inotify_rm_watch -157 common statfs sys_statfs compat_sys_statfs -158 common fstatfs sys_fstatfs compat_sys_fstatfs -159 common umount sys_oldumount -160 common sched_set_affinity sys_sched_setaffinity compat_sys_sched_seta= ffinity -161 common sched_get_affinity sys_sched_getaffinity compat_sys_sched_geta= ffinity -162 common getdomainname sys_getdomainname -163 common setdomainname sys_setdomainname -164 64 utrap_install sys_utrap_install -165 common quotactl sys_quotactl -166 common set_tid_address sys_set_tid_address -167 common mount sys_mount compat_sys_mount -168 common ustat sys_ustat compat_sys_ustat -169 common setxattr sys_setxattr -170 common lsetxattr sys_lsetxattr -171 common fsetxattr sys_fsetxattr -172 common getxattr sys_getxattr -173 common lgetxattr sys_lgetxattr -174 common getdents sys_getdents compat_sys_getdents -175 common setsid sys_setsid -176 common fchdir sys_fchdir -177 common fgetxattr sys_fgetxattr -178 common listxattr sys_listxattr -179 common llistxattr sys_llistxattr -180 common flistxattr sys_flistxattr -181 common removexattr sys_removexattr -182 common lremovexattr sys_lremovexattr -183 32 sigpending sys_sigpending compat_sys_sigpending -183 64 sigpending sys_nis_syscall -184 common query_module sys_ni_syscall -185 common setpgid sys_setpgid -186 common fremovexattr sys_fremovexattr -187 common tkill sys_tkill -188 32 exit_group sys_exit_group sparc_exit_group -188 64 exit_group sparc_exit_group -189 common uname sys_newuname -190 common init_module sys_init_module -191 32 personality sys_personality sys_sparc64_personality -191 64 personality sys_sparc64_personality -192 32 remap_file_pages sys_sparc_remap_file_pages sys_remap_file_pages -192 64 remap_file_pages sys_remap_file_pages -193 common epoll_create sys_epoll_create -194 common epoll_ctl sys_epoll_ctl -195 common epoll_wait sys_epoll_wait -196 common ioprio_set sys_ioprio_set -197 common getppid sys_getppid -198 32 sigaction sys_sparc_sigaction compat_sys_sparc_sigaction -198 64 sigaction sys_nis_syscall -199 common sgetmask sys_sgetmask -200 common ssetmask sys_ssetmask -201 32 sigsuspend sys_sigsuspend -201 64 sigsuspend sys_nis_syscall -202 common oldlstat sys_newlstat compat_sys_newlstat -203 common uselib sys_uselib -204 32 readdir sys_old_readdir compat_sys_old_readdir -204 64 readdir sys_nis_syscall -205 common readahead sys_readahead compat_sys_readahead -206 common socketcall sys_socketcall sys32_socketcall -207 common syslog sys_syslog -208 common lookup_dcookie sys_lookup_dcookie compat_sys_lookup_dcookie -209 common fadvise64 sys_fadvise64 compat_sys_fadvise64 -210 common fadvise64_64 sys_fadvise64_64 compat_sys_fadvise64_64 -211 common tgkill sys_tgkill -212 common waitpid sys_waitpid -213 common swapoff sys_swapoff -214 common sysinfo sys_sysinfo compat_sys_sysinfo -215 32 ipc sys_ipc compat_sys_ipc -215 64 ipc sys_sparc_ipc -216 32 sigreturn sys_sigreturn sys32_sigreturn -216 64 sigreturn sys_nis_syscall -217 common clone sys_clone -218 common ioprio_get sys_ioprio_get -219 32 adjtimex sys_adjtimex_time32 -219 64 adjtimex sys_sparc_adjtimex -220 32 sigprocmask sys_sigprocmask compat_sys_sigprocmask -220 64 sigprocmask sys_nis_syscall -221 common create_module sys_ni_syscall -222 common delete_module sys_delete_module -223 common get_kernel_syms sys_ni_syscall -224 common getpgid sys_getpgid -225 common bdflush sys_bdflush -226 common sysfs sys_sysfs -227 common afs_syscall sys_nis_syscall -228 common setfsuid sys_setfsuid16 -229 common setfsgid sys_setfsgid16 -230 common _newselect sys_select compat_sys_select -231 32 time sys_time32 -232 common splice sys_splice -233 32 stime sys_stime32 -233 64 stime sys_stime -234 common statfs64 sys_statfs64 compat_sys_statfs64 -235 common fstatfs64 sys_fstatfs64 compat_sys_fstatfs64 -236 common _llseek sys_llseek -237 common mlock sys_mlock -238 common munlock sys_munlock -239 common mlockall sys_mlockall -240 common munlockall sys_munlockall -241 common sched_setparam sys_sched_setparam -242 common sched_getparam sys_sched_getparam -243 common sched_setscheduler sys_sched_setscheduler -244 common sched_getscheduler sys_sched_getscheduler -245 common sched_yield sys_sched_yield -246 common sched_get_priority_max sys_sched_get_priority_max -247 common sched_get_priority_min sys_sched_get_priority_min -248 32 sched_rr_get_interval sys_sched_rr_get_interval_time32 -248 64 sched_rr_get_interval sys_sched_rr_get_interval -249 32 nanosleep sys_nanosleep_time32 -249 64 nanosleep sys_nanosleep -250 32 mremap sys_mremap -250 64 mremap sys_64_mremap -251 common _sysctl sys_ni_syscall -252 common getsid sys_getsid -253 common fdatasync sys_fdatasync -254 32 nfsservctl sys_ni_syscall sys_nis_syscall -254 64 nfsservctl sys_nis_syscall -255 common sync_file_range sys_sync_file_range compat_sys_sync_file_range -256 32 clock_settime sys_clock_settime32 -256 64 clock_settime sys_clock_settime -257 32 clock_gettime sys_clock_gettime32 -257 64 clock_gettime sys_clock_gettime -258 32 clock_getres sys_clock_getres_time32 -258 64 clock_getres sys_clock_getres -259 32 clock_nanosleep sys_clock_nanosleep_time32 -259 64 clock_nanosleep sys_clock_nanosleep -260 common sched_getaffinity sys_sched_getaffinity compat_sys_sched_getaf= finity -261 common sched_setaffinity sys_sched_setaffinity compat_sys_sched_setaf= finity -262 32 timer_settime sys_timer_settime32 -262 64 timer_settime sys_timer_settime -263 32 timer_gettime sys_timer_gettime32 -263 64 timer_gettime sys_timer_gettime -264 common timer_getoverrun sys_timer_getoverrun -265 common timer_delete sys_timer_delete -266 common timer_create sys_timer_create compat_sys_timer_create -# 267 was vserver -267 common vserver sys_nis_syscall -268 common io_setup sys_io_setup compat_sys_io_setup -269 common io_destroy sys_io_destroy -270 common io_submit sys_io_submit compat_sys_io_submit -271 common io_cancel sys_io_cancel -272 32 io_getevents sys_io_getevents_time32 -272 64 io_getevents sys_io_getevents -273 common mq_open sys_mq_open compat_sys_mq_open -274 common mq_unlink sys_mq_unlink -275 32 mq_timedsend sys_mq_timedsend_time32 -275 64 mq_timedsend sys_mq_timedsend -276 32 mq_timedreceive sys_mq_timedreceive_time32 -276 64 mq_timedreceive sys_mq_timedreceive -277 common mq_notify sys_mq_notify compat_sys_mq_notify -278 common mq_getsetattr sys_mq_getsetattr compat_sys_mq_getsetattr -279 common waitid sys_waitid compat_sys_waitid -280 common tee sys_tee -281 common add_key sys_add_key -282 common request_key sys_request_key -283 common keyctl sys_keyctl compat_sys_keyctl -284 common openat sys_openat compat_sys_openat -285 common mkdirat sys_mkdirat -286 common mknodat sys_mknodat -287 common fchownat sys_fchownat -288 32 futimesat sys_futimesat_time32 -288 64 futimesat sys_futimesat -289 common fstatat64 sys_fstatat64 compat_sys_fstatat64 -290 common unlinkat sys_unlinkat -291 common renameat sys_renameat -292 common linkat sys_linkat -293 common symlinkat sys_symlinkat -294 common readlinkat sys_readlinkat -295 common fchmodat sys_fchmodat -296 common faccessat sys_faccessat -297 32 pselect6 sys_pselect6_time32 compat_sys_pselect6_time32 -297 64 pselect6 sys_pselect6 -298 32 ppoll sys_ppoll_time32 compat_sys_ppoll_time32 -298 64 ppoll sys_ppoll -299 common unshare sys_unshare -300 common set_robust_list sys_set_robust_list compat_sys_set_robust_list -301 common get_robust_list sys_get_robust_list compat_sys_get_robust_list -302 common migrate_pages sys_migrate_pages compat_sys_migrate_pages -303 common mbind sys_mbind compat_sys_mbind -304 common get_mempolicy sys_get_mempolicy compat_sys_get_mempolicy -305 common set_mempolicy sys_set_mempolicy compat_sys_set_mempolicy -306 common kexec_load sys_kexec_load compat_sys_kexec_load -307 common move_pages sys_move_pages compat_sys_move_pages -308 common getcpu sys_getcpu -309 common epoll_pwait sys_epoll_pwait compat_sys_epoll_pwait -310 32 utimensat sys_utimensat_time32 -310 64 utimensat sys_utimensat -311 common signalfd sys_signalfd compat_sys_signalfd -312 common timerfd_create sys_timerfd_create -313 common eventfd sys_eventfd -314 common fallocate sys_fallocate compat_sys_fallocate -315 32 timerfd_settime sys_timerfd_settime32 -315 64 timerfd_settime sys_timerfd_settime -316 32 timerfd_gettime sys_timerfd_gettime32 -316 64 timerfd_gettime sys_timerfd_gettime -317 common signalfd4 sys_signalfd4 compat_sys_signalfd4 -318 common eventfd2 sys_eventfd2 -319 common epoll_create1 sys_epoll_create1 -320 common dup3 sys_dup3 -321 common pipe2 sys_pipe2 -322 common inotify_init1 sys_inotify_init1 -323 common accept4 sys_accept4 -324 common preadv sys_preadv compat_sys_preadv -325 common pwritev sys_pwritev compat_sys_pwritev -326 common rt_tgsigqueueinfo sys_rt_tgsigqueueinfo compat_sys_rt_tgsigque= ueinfo -327 common perf_event_open sys_perf_event_open -328 32 recvmmsg sys_recvmmsg_time32 compat_sys_recvmmsg_time32 -328 64 recvmmsg sys_recvmmsg -329 common fanotify_init sys_fanotify_init -330 common fanotify_mark sys_fanotify_mark compat_sys_fanotify_mark -331 common prlimit64 sys_prlimit64 -332 common name_to_handle_at sys_name_to_handle_at -333 common open_by_handle_at sys_open_by_handle_at compat_sys_open_by_han= dle_at -334 32 clock_adjtime sys_clock_adjtime32 -334 64 clock_adjtime sys_sparc_clock_adjtime -335 common syncfs sys_syncfs -336 common sendmmsg sys_sendmmsg compat_sys_sendmmsg -337 common setns sys_setns -338 common process_vm_readv sys_process_vm_readv compat_sys_process_vm_re= adv -339 common process_vm_writev sys_process_vm_writev compat_sys_process_vm_= writev -340 32 kern_features sys_ni_syscall sys_kern_features -340 64 kern_features sys_kern_features -341 common kcmp sys_kcmp -342 common finit_module sys_finit_module -343 common sched_setattr sys_sched_setattr -344 common sched_getattr sys_sched_getattr -345 common renameat2 sys_renameat2 -346 common seccomp sys_seccomp -347 common getrandom sys_getrandom -348 common memfd_create sys_memfd_create -349 common bpf sys_bpf -350 32 execveat sys_execveat sys32_execveat -350 64 execveat sys64_execveat -351 common membarrier sys_membarrier -352 common userfaultfd sys_userfaultfd -353 common bind sys_bind -354 common listen sys_listen -355 common setsockopt sys_setsockopt sys_setsockopt -356 common mlock2 sys_mlock2 -357 common copy_file_range sys_copy_file_range -358 common preadv2 sys_preadv2 compat_sys_preadv2 -359 common pwritev2 sys_pwritev2 compat_sys_pwritev2 -360 common statx sys_statx -361 32 io_pgetevents sys_io_pgetevents_time32 compat_sys_io_pgetevents -361 64 io_pgetevents sys_io_pgetevents -362 common pkey_mprotect sys_pkey_mprotect -363 common pkey_alloc sys_pkey_alloc -364 common pkey_free sys_pkey_free -365 common rseq sys_rseq -# room for arch specific syscalls -392 64 semtimedop sys_semtimedop -393 common semget sys_semget -394 common semctl sys_semctl compat_sys_semctl -395 common shmget sys_shmget -396 common shmctl sys_shmctl compat_sys_shmctl -397 common shmat sys_shmat compat_sys_shmat -398 common shmdt sys_shmdt -399 common msgget sys_msgget -400 common msgsnd sys_msgsnd compat_sys_msgsnd -401 common msgrcv sys_msgrcv compat_sys_msgrcv -402 common msgctl sys_msgctl compat_sys_msgctl -403 32 clock_gettime64 sys_clock_gettime sys_clock_gettime -404 32 clock_settime64 sys_clock_settime sys_clock_settime -405 32 clock_adjtime64 sys_clock_adjtime sys_clock_adjtime -406 32 clock_getres_time64 sys_clock_getres sys_clock_getres -407 32 clock_nanosleep_time64 sys_clock_nanosleep sys_clock_nanosleep -408 32 timer_gettime64 sys_timer_gettime sys_timer_gettime -409 32 timer_settime64 sys_timer_settime sys_timer_settime -410 32 timerfd_gettime64 sys_timerfd_gettime sys_timerfd_gettime -411 32 timerfd_settime64 sys_timerfd_settime sys_timerfd_settime -412 32 utimensat_time64 sys_utimensat sys_utimensat -413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 -414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 -416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents -417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 -418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend -419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive -420 32 semtimedop_time64 sys_semtimedop sys_semtimedop -421 32 rt_sigtimedwait_time64 sys_rt_sigtimedwait compat_sys_rt_sigtimed= wait_time64 -422 32 futex_time64 sys_futex sys_futex -423 32 sched_rr_get_interval_time64 sys_sched_rr_get_interval sys_sched_rr= _get_interval -424 common pidfd_send_signal sys_pidfd_send_signal -425 common io_uring_setup sys_io_uring_setup -426 common io_uring_enter sys_io_uring_enter -427 common io_uring_register sys_io_uring_register -428 common open_tree sys_open_tree -429 common move_mount sys_move_mount -430 common fsopen sys_fsopen -431 common fsconfig sys_fsconfig -432 common fsmount sys_fsmount -433 common fspick sys_fspick -434 common pidfd_open sys_pidfd_open -# 435 reserved for clone3 -436 common close_range sys_close_range -437 common openat2 sys_openat2 -438 common pidfd_getfd sys_pidfd_getfd -439 common faccessat2 sys_faccessat2 diff --git a/linux-user/sparc64/syscallhdr.sh b/linux-user/sparc64/syscallh= dr.sh deleted file mode 100644 index 08c7e39bb3fe..000000000000 --- a/linux-user/sparc64/syscallhdr.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: GPL-2.0 - -in=3D"$1" -out=3D"$2" -my_abis=3D`echo "($3)" | tr ',' '|'` -prefix=3D"$4" -offset=3D"$5" - -fileguard=3DLINUX_USER_SPARC64_`basename "$out" | sed \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ - -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g'` -grep -E "^[0-9A-Fa-fXx]+[[:space:]]+${my_abis}" "$in" | sort -n | ( - printf "#ifndef %s\n" "${fileguard}" - printf "#define %s\n" "${fileguard}" - printf "\n" - - nxt=3D0 - while read nr abi name entry compat ; do - if [ -z "$offset" ]; then - printf "#define TARGET_NR_%s%s\t%s\n" \ - "${prefix}" "${name}" "${nr}" - else - printf "#define TARGET_NR_%s%s\t(%s + %s)\n" \ - "${prefix}" "${name}" "${offset}" "${nr}" - fi - nxt=3D$((nr+1)) - done - - printf "\n" - printf "#endif /* %s */" "${fileguard}" -) > "$out" diff --git a/linux-user/sparc64/target_cpu.h b/linux-user/sparc64/target_cp= u.h deleted file mode 100644 index b22263d2dbe9..000000000000 --- a/linux-user/sparc64/target_cpu.h +++ /dev/null @@ -1 +0,0 @@ -#include "../sparc/target_cpu.h" diff --git a/linux-user/sparc64/target_elf.h b/linux-user/sparc64/target_el= f.h deleted file mode 100644 index 023b49b74375..000000000000 --- a/linux-user/sparc64/target_elf.h +++ /dev/null @@ -1 +0,0 @@ -#include "../sparc/target_elf.h" diff --git a/linux-user/sparc64/target_fcntl.h b/linux-user/sparc64/target_= fcntl.h deleted file mode 100644 index 053c7742579f..000000000000 --- a/linux-user/sparc64/target_fcntl.h +++ /dev/null @@ -1 +0,0 @@ -#include "../sparc/target_fcntl.h" diff --git a/linux-user/sparc64/target_signal.h b/linux-user/sparc64/target= _signal.h deleted file mode 100644 index 6a7d57d0243c..000000000000 --- a/linux-user/sparc64/target_signal.h +++ /dev/null @@ -1 +0,0 @@ -#include "../sparc/target_signal.h" diff --git a/linux-user/sparc64/target_structs.h b/linux-user/sparc64/targe= t_structs.h deleted file mode 100644 index cbcbc4602a69..000000000000 --- a/linux-user/sparc64/target_structs.h +++ /dev/null @@ -1 +0,0 @@ -#include "../sparc/target_structs.h" diff --git a/linux-user/sparc64/target_syscall.h b/linux-user/sparc64/targe= t_syscall.h deleted file mode 100644 index 164a5fc6322f..000000000000 --- a/linux-user/sparc64/target_syscall.h +++ /dev/null @@ -1 +0,0 @@ -#include "../sparc/target_syscall.h" diff --git a/linux-user/sparc64/termbits.h b/linux-user/sparc64/termbits.h deleted file mode 100644 index 54ddfee3ba34..000000000000 --- a/linux-user/sparc64/termbits.h +++ /dev/null @@ -1 +0,0 @@ -#include "../sparc/termbits.h" --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316339; cv=none; d=zohomail.com; s=zohoarc; b=Rz4xZiwr0wt59GN08Sz1u+G3kxXgc0IhjO2FJ76aPnCYAWP0obCfecQC1c3mjDmCY180pGH4yVuqWHmO+Cf2ViFlgmjwP2QkDAPMJWJjJVsrtbQCEjBv2f4Z2nBtr3bVwdaXsfLEQ9RVpCnGfSoiWSYkFzEmP+QMUaz7B/+kxjw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316339; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=aETM7cX6Fn2IOowAJApdnIrW/Wt3lUGHDrN0sMwrFLc=; b=N1V0gpXjeS8r693MxHanc6TgE2/avNlXN2vg0MHcwXj21uw3YCFRYVSs4mHq1CQTITyv7knHhRU9pTrwH7C7rlkmNrqYPksFdnN0Vfa53H2WETPlp9iFmYmqip+PxM/0l5zDkcEWanYy/5mxsI5TqIxwhFAxI7dp2unirPF60Fk= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316339285803.1130894422603; Mon, 17 May 2021 22:38:59 -0700 (PDT) Received: from localhost ([::1]:41112 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisRW-0001XR-50 for importer@patchew.org; Tue, 18 May 2021 01:38:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38430) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKZ-00076a-2L for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:47 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:59629) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKX-00071H-Ab for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:46 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mnq4Q-1l75r248a2-00pNWQ; Tue, 18 May 2021 07:31:43 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 19/59] linux-user/sparc: Remove target_sigcontext as unused Date: Tue, 18 May 2021 07:30:51 +0200 Message-Id: <20210518053131.87212-20-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:fzgVEwQgHpq5x7eUZ6n+Y9Jg7c2kJgFhZ9mPXELGNIUovVvMXG+ fFRHH50Ins/T7+XW3NvGhUKQywVgww1xivcP/NuEehlTflrrpZw7K9lJMqGkUR9fLvOzDqn CEJkrGVwM8/lftnKzCf3kuQZiNpYeWFUvQgAI2/HNSf4gdP1MeelhM1e+EjKJ5X3W8Uyhq9 uJxhytJBAJZfH/Km3TLqg== X-UI-Out-Filterresults: notjunk:1;V03:K0:txJ3j8Gd3Ow=:bDPsAdo17l4f6gLL4nb5ck GpoQCVLhFR8fG6OxwrftE4DmfogOznEmSmvA7n0s7LeWtUv7gGHDmU6/AyFOZi1Gg0VZjUXO/ +5p94pdN35VLx3VswQwlR6NUylvk+mhI81FPfohIar/6x/I9qrXnvoih49SCYm+1k//vRnjCP uUcwPPazhjD3ttPeyZXyyo69wMOsbtglS3jx/8a1+29wO3tz7Uo0xbMlwpM8H9NBHXjy+Kvzb 2YZy9jPRviD3qTQw6Y1opcjYzOggVO6TfVhBSU49MuP/fgSjucrYdnylHQnAI01ysxEs5yTNS c2buQF4v5l/Ot1JBMxKce1itHE5r499bMgBAc2PFj1RzKNFMXtF8fX3sal7CFtXeLPE7lBccr bDI2g8PBE68HyR7GtgLvCuTZ3IpDK1coiAXEkIIW77z3bkW6gH1HuJ1bscoPpyTSSEmH76OgZ cCbEoNC3x8AUlFNL+Cp06dBBmVI5CJxkS36t/bnAYCLrh5nEdy1eaqqXuER330WLJO+tNG6lB lCbo4jy1wKoC0GBr/IXUqw= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.131; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-13-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 76579093a88c..3d068e095508 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -21,34 +21,6 @@ #include "signal-common.h" #include "linux-user/trace.h" =20 -#define __SUNOS_MAXWIN 31 - -/* This is what SunOS does, so shall I. */ -struct target_sigcontext { - abi_ulong sigc_onstack; /* state to restore */ - - abi_ulong sigc_mask; /* sigmask to restore */ - abi_ulong sigc_sp; /* stack pointer */ - abi_ulong sigc_pc; /* program counter */ - abi_ulong sigc_npc; /* next program counter */ - abi_ulong sigc_psr; /* for condition codes etc */ - abi_ulong sigc_g1; /* User uses these two registers */ - abi_ulong sigc_o0; /* within the trampoline code. */ - - /* Now comes information regarding the users window set - * at the time of the signal. - */ - abi_ulong sigc_oswins; /* outstanding windows */ - - /* stack ptrs for each regwin buf */ - char *sigc_spbuf[__SUNOS_MAXWIN]; - - /* Windows to restore after signal */ - struct { - abi_ulong locals[8]; - abi_ulong ins[8]; - } sigc_wbuf[__SUNOS_MAXWIN]; -}; /* A Sparc stack frame */ struct sparc_stackf { abi_ulong locals[8]; --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317347; cv=none; d=zohomail.com; s=zohoarc; b=L2US2IwTmC1NU6rUsPWBtZ+9i6kThQvYy8tRZcR05Gkr+2KN4O24etIIRNplocanLuniOI3yHu2nnLhmYqY4BrPjz9uE6pWENCUFAv+XTXokJGhIXi7NjOPHjbc9omCynqDydnU/nFvMzMdQ/ThjHdcO1X5dhZUV99yVRe+aCqk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317347; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=bKzskBAJgP7icxaeKtmII4rS816hMzGi1KXbx6iXGaE=; b=Xu94JIo+zdGIw4Tls3ML0ZFqzmpsda3WfrJATLmOd0RYffM3w1uRLWqQwvWmOX3MjDPuAX8/Ip60Fdm928A0b2/vlqNhgstnFSft4e8jhy+68Y9M+h6yoKiXbvFRwNAxCmDRQIRfhR+BakZgWykwVoUWTRjWbbF05a3SLzBig7k= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317347019588.3611263337019; Mon, 17 May 2021 22:55:47 -0700 (PDT) Received: from localhost ([::1]:49706 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lishm-0001N1-0i for importer@patchew.org; Tue, 18 May 2021 01:55:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38542) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKc-0007Lt-LV for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:50 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:38329) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKX-00071f-Hg for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:50 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MLiPA-1m0PDL1xDs-00HdQ4; Tue, 18 May 2021 07:31:43 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 20/59] linux-user/sparc: Remove target_rt_signal_frame as unused Date: Tue, 18 May 2021 07:30:52 +0200 Message-Id: <20210518053131.87212-21-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:pzEhl5msB69SR1LsoqWXfpcEmhm28bWZGCNObjajD4vE5qRp2rh 7hjmXvwFhS33IFOyGAq21ravfx2HyotUI4fuxBwUQIpGULnjLkV/qsRRtYheWX2q1/fKcPh 3cBtwoG7lPJtb34QY+Hsq3RF2J85kpCZl8umSTp0s5Jr+V00qYBJ+taReBWp83X2sYMqhGR XlbPIKO81tCt7ym4W2hlA== X-UI-Out-Filterresults: notjunk:1;V03:K0:Z5KaRiB5JzM=:C+XKfrtCu4Q0bB+TnrZos2 4bftf59kDiCbAJcyXp0ZToAKhEn8WlNeqZocSDCtnzjtdDDn4P8ow/C6b1iaRjBx28apYA8rf IUtdVevZt3UAKjTiP4LdyPVSHa0XodEQLs5aSqO7r4awihP5ot3xLSK4p7I4Z+MjSQso7tjWn FxNRds3vhV0Yqu92AzyfursuLmwSLeMtUvRPlfTf08qQaY2NLpkz255T7ohURq8b5fnIrZcXR 850uPRT9CXPEUv7++w0rR1zro+kwk244TRQhxu1/RJwUfn8H0owMhvM0Y9BxJ835pnpP0ZFMy /wia5F1lAYbW6YKXYAKDx3wkrAAaQAWsadSsIIwXjwtmrldTkkCUC+TuwBVYagdAQhgNjSF1x J3W38/XG8M2LhJBI8mTaz3bFV2XoMUmG46E+M/TX0d3qYjYrlbyg4ZmfLQCpVhsFtMD1Bl6+M HsfEgtYNwiRoNDoOrXMRr4HgNmOYrrbwgZgMTJIxf95n0Nbtf0SjJWyVf7bLN8L/wHfrEy1ep nOsZFuolkpBTAwc/kXrKTI= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson It's wrong anyway. Remove it for now. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-14-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 3d068e095508..29c5e3b0c0be 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -64,17 +64,6 @@ struct target_signal_frame { abi_ulong extra_size; /* Should be 0 */ qemu_siginfo_fpu_t fpu_state; }; -struct target_rt_signal_frame { - struct sparc_stackf ss; - siginfo_t info; - abi_ulong regs[20]; - sigset_t mask; - abi_ulong fpu_save; - uint32_t insns[2]; - stack_t stack; - unsigned int extra_size; /* Should be 0 */ - qemu_siginfo_fpu_t fpu_state; -}; =20 static inline abi_ulong get_sigframe(struct target_sigaction *sa,=20 CPUSPARCState *env, --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317150; cv=none; d=zohomail.com; s=zohoarc; b=IbjQ91ALQkpzEfNi7mNmqaN6UypAoIuNLxMPrcqPGTx14ui85Z4/SVZCmDP/LxrRHUNaR75tN30jZ0DGoKmWg385b7/3/8Gjsg5GcjH4iSEGxNzakyiFe1ecHE6E6qP0789KuBxt1SpUzdKoTSxv3ZvJiVqVdvgZNabXqkM4YlM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317150; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=B21OUt/81fu6DBqGxWAmFfagh4c68Y/SSrdwK2Mwu7s=; b=CIZDWVUkmKZ7Jxb9zMtt2Ws3gGXbtKlU05bKPYQjnxdiJRnsfzpqMLzyC8MzBhhLjrFzn7s8RwORJqgyJATDepgPODEOVUo+ZhBEYYoR8UDydbB/csHty6xomoOwtHyR6xiD711zfOL2EZD4pX0tQzGA2TG7oocxUe2gIZNxO64= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317150547799.619211300744; Mon, 17 May 2021 22:52:30 -0700 (PDT) Received: from localhost ([::1]:41458 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liseb-0004C0-Cn for importer@patchew.org; Tue, 18 May 2021 01:52:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38510) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKb-0007IS-PJ for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:49 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:58975) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKY-00072y-2h for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:49 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N4Qbu-1lJ8Z73ego-011O5a; Tue, 18 May 2021 07:31:44 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 21/59] linux-user/sparc: Fix the stackframe structure Date: Tue, 18 May 2021 07:30:53 +0200 Message-Id: <20210518053131.87212-22-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:MB8TZn1JvmotdVuY4Vs1YvdS3+Jt2ru8wETuXRzGeOrUASHQa9T 2LIQQvIEbu2LSdGJu5r7rr2J66/4DybFGU6PWMt5JCQXvRzH4rorfFYfI5UlV4M7+ZdOYUL 3gchfatSgMArrq+N9MjblS4T7D5W5Occ5ss6d3q56HwZURN1w/44bzTFISFfCT0Z/qdkEvS xGR3Tqz5WcLzT9Ot0JY1g== X-UI-Out-Filterresults: notjunk:1;V03:K0:C1oN28GB6XY=:6s4HCu6cZy5gAfGSWBdyPK 5yc61zOSzWlIZ1G0LojMcoh48CdF5OPJcEin2kPBRuyEY2gFhHevjLUyQwntH0+3ynejlzcbQ 4FGBrPHanIiSXmxzuzRj1vM1L05URVX4HGfOje5GxZoOmB7JSoepwPehSz5ibGwcc1LsnEDgN wEioOBROg6CvnDHKmVFU73UF5ksVgSy56ueGsd713CWKnT/AKDr49owmhHqZvA8tEM6EBXUBp bMR/0gpMXNAmhL2TSUyaDJDp37Oqrj0r1W6S6DTWBBCn0nqsJmz6+GOLUk6v/HT6yYerdeAa9 JW2/TOFXxP5DlDNwWws1KWuv9MyuFPlv3WBa/BloVUry3LG9Nt2+eBpZO8Pw1Hav4AmJNcyv5 GdlwLmpv3mnVDylKGveqEB2nHit6eIvKZeFTNQ1RXeC9Md/RSPafvaWl6uDIYrlDfTd7yErdh OpMaN4D1lyCjSgjH64ix+G+PdkGmUvY06/P01OD4aZ4cNpaKh1WJDbNhGpztd4VzuRTtPTvWv xhfGRVihmQ9JkdrQGKEJ+4= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Move target_reg_window up and use it. Fold structptr and xxargs into xargs -- the use of a host pointer was incorrect anyway. Rename the structure to target_stackf for consistency. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-15-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 29c5e3b0c0be..3474098641a6 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -21,16 +21,26 @@ #include "signal-common.h" #include "linux-user/trace.h" =20 -/* A Sparc stack frame */ -struct sparc_stackf { +/* A Sparc register window */ +struct target_reg_window { abi_ulong locals[8]; abi_ulong ins[8]; - /* It's simpler to treat fp and callers_pc as elements of ins[] - * since we never need to access them ourselves. - */ - char *structptr; - abi_ulong xargs[6]; - abi_ulong xxargs[1]; +}; + +/* A Sparc stack frame. */ +struct target_stackf { + /* + * Since qemu does not reference fp or callers_pc directly, + * it's simpler to treat fp and callers_pc as elements of ins[], + * and then bundle locals[] and ins[] into reg_window. + */ + struct target_reg_window win; + /* + * Similarly, bundle structptr and xxargs into xargs[]. + * This portion of the struct is part of the function call abi, + * and belongs to the callee for spilling argument registers. + */ + abi_ulong xargs[8]; }; =20 typedef struct { @@ -56,7 +66,7 @@ typedef struct { =20 =20 struct target_signal_frame { - struct sparc_stackf ss; + struct target_stackf ss; __siginfo_t info; abi_ulong fpu_save; uint32_t insns[2] QEMU_ALIGNED(8); @@ -150,10 +160,10 @@ void setup_frame(int sig, struct target_sigaction *ka, } =20 for (i =3D 0; i < 8; i++) { - __put_user(env->regwptr[i + WREG_L0], &sf->ss.locals[i]); + __put_user(env->regwptr[i + WREG_L0], &sf->ss.win.locals[i]); } for (i =3D 0; i < 8; i++) { - __put_user(env->regwptr[i + WREG_I0], &sf->ss.ins[i]); + __put_user(env->regwptr[i + WREG_I0], &sf->ss.win.ins[i]); } if (err) goto sigsegv; @@ -349,12 +359,6 @@ struct target_ucontext { target_mcontext_t tuc_mcontext; }; =20 -/* A V9 register window */ -struct target_reg_window { - abi_ulong locals[8]; - abi_ulong ins[8]; -}; - /* {set, get}context() needed for 64-bit SparcLinux userland. */ void sparc64_set_context(CPUSPARCState *env) { --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317477; cv=none; d=zohomail.com; s=zohoarc; b=Z2mePZempWjeg8VkB9w4Yp38v8Vt8xT8XZ964GPoMrwzj4aw7dq2OL8b9WkHUAa2fWCA8HiQSuJi9CX2nQ2IA8LjSNuNzMXiXt9YXt+jmWfk2W+2TPd1J0LHTzlDLKtwENFvO9IObKvfNUIdoSzgXARrkgqmOkev8jALiaUi3bA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317477; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0+TUh1C+a2WQZAOVDg1ev1i53I0ztM+s+oValm/gNw8=; b=B1s3kA03fnTWBC4F+d1CQY2gqRBSc4m5gNv5xK3kMOMxy8fsWJGC6MHRa36mRe0+rCG6Qb/u1XxNH30FrGKIoTDb9KzrLj0bw5Yj/jQ9ftFA/08qIdgonO6T+mmo5X1XdU9iVkaqasY740nz1z8I5gKzuF+EET0NNlNVOe9Bh8w= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317477079612.133997697554; Mon, 17 May 2021 22:57:57 -0700 (PDT) Received: from localhost ([::1]:55610 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisjr-0005Q9-48 for importer@patchew.org; Tue, 18 May 2021 01:57:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38536) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKc-0007LV-GZ for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:50 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:35221) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKY-00073T-OW for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:50 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MeCd5-1lA60l1Dkt-00bMtX; Tue, 18 May 2021 07:31:44 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 22/59] linux-user/sparc: Use target_pt_regs Date: Tue, 18 May 2021 07:30:54 +0200 Message-Id: <20210518053131.87212-23-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:PevIUhbPkgzvvmYLXnc/vzCw9lJf9UwmnBDWP3i6zs8mnjkih2m zUShhb+ebWxgTo4drZvpWb229YoTrsSqW61MFRwDPM+h5fubSzODyDHjwRjqqKsoDtlELiv YLRTwDq5dThm3yN00DZyU7jL2oUUNIjzlhYlV3V2yqUsapql91g4IsQ/ClGh7KSA2ZWOKzi mCZjU82rmBQlKiOhs0sQg== X-UI-Out-Filterresults: notjunk:1;V03:K0:rqJ7Ay0WD9A=:Wp6y/wVvRDXEkw3JO7+ozz 0ZVwGAf7SGjAnel98iVlLKn9IgPTHUX7w20fBFUXupKkWSu5wBerC5WoHgXH15LkYxHWIhf4l YGNgTGRucAuybus39I/N9ji6wufFch8YjVcr/42U7O7ciRHxuVwOIUdKqxFjDtwvzRE332ETi Ew1fAEUptytsNiMibNVSr4ztlUVW2HheoR9q6385HxxC5ZLy8qqjeGt6Vhk8dQ3MKqZCudtCW sfmgFQ8CJTsDl4O+Le+9meqavQdDDyYygBmZBpY+vKDP//H/ZsTnYdoXoGU5XIHFrV3wN4bRq wacGVMzxdgb/cARJoZ8e79rxvO7KOBRZcwOjOkTmGUp7YB0IJSrnQsBq0V3JfQ+bwl/vtcDf8 hkqjMbYoXZvnot1G4JYvR5WfeKnb1lBwxsYiUboxIyNFFkwJO5j3ZD9/qPMuHLtMTOKx3qpPL 4jJzL1KfmCeN5/S45Wi9tOQUhmrjJYputJgDVVmGxQMGekQcHZL/OpZ9iWwz29ceE0CcGDHya 41UTX/pjhzta+QE6gjZm6E= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.133; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Replace __siginfo_t with target_pt_regs, and move si_mask into target_signal_frame directly. Extract save/restore functions for target_pt_regs. Adjust for sparc64 tstate. Use proper get/put functions for psr. Turns out we were already writing to si_mask twice, so no need to handle that in the new functions. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-16-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 123 ++++++++++++++++++++------------------ 1 file changed, 65 insertions(+), 58 deletions(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 3474098641a6..0d9305818f8c 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -43,17 +43,6 @@ struct target_stackf { abi_ulong xargs[8]; }; =20 -typedef struct { - struct { - abi_ulong psr; - abi_ulong pc; - abi_ulong npc; - abi_ulong y; - abi_ulong u_regs[16]; /* globals and ins */ - } si_regs; - int si_mask; -} __siginfo_t; - typedef struct { abi_ulong si_float_regs[32]; unsigned long si_fsr; @@ -67,7 +56,8 @@ typedef struct { =20 struct target_signal_frame { struct target_stackf ss; - __siginfo_t info; + struct target_pt_regs regs; + uint32_t si_mask; abi_ulong fpu_save; uint32_t insns[2] QEMU_ALIGNED(8); abi_ulong extramask[TARGET_NSIG_WORDS - 1]; @@ -103,23 +93,61 @@ static inline abi_ulong get_sigframe(struct target_sig= action *sa, return sp; } =20 -static int -setup___siginfo(__siginfo_t *si, CPUSPARCState *env, abi_ulong mask) +static void save_pt_regs(struct target_pt_regs *regs, CPUSPARCState *env) { - int err =3D 0, i; - - __put_user(env->psr, &si->si_regs.psr); - __put_user(env->pc, &si->si_regs.pc); - __put_user(env->npc, &si->si_regs.npc); - __put_user(env->y, &si->si_regs.y); - for (i=3D0; i < 8; i++) { - __put_user(env->gregs[i], &si->si_regs.u_regs[i]); + int i; + +#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32) + __put_user(sparc64_tstate(env), ®s->tstate); + /* TODO: magic should contain PT_REG_MAGIC + %tt. */ + __put_user(0, ®s->magic); +#else + __put_user(cpu_get_psr(env), ®s->psr); +#endif + + __put_user(env->pc, ®s->pc); + __put_user(env->npc, ®s->npc); + __put_user(env->y, ®s->y); + + for (i =3D 0; i < 8; i++) { + __put_user(env->gregs[i], ®s->u_regs[i]); } - for (i=3D0; i < 8; i++) { - __put_user(env->regwptr[WREG_O0 + i], &si->si_regs.u_regs[i + 8]); + for (i =3D 0; i < 8; i++) { + __put_user(env->regwptr[WREG_O0 + i], ®s->u_regs[i + 8]); + } +} + +static void restore_pt_regs(struct target_pt_regs *regs, CPUSPARCState *en= v) +{ + int i; + +#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32) + /* User can only change condition codes and %asi in %tstate. */ + uint64_t tstate; + __get_user(tstate, ®s->tstate); + cpu_put_ccr(env, tstate >> 32); + env->asi =3D extract64(tstate, 24, 8); +#else + /* + * User can only change condition codes and FPU enabling in %psr. + * But don't bother with FPU enabling, since a real kernel would + * just re-enable the FPU upon the next fpu trap. + */ + uint32_t psr; + __get_user(psr, ®s->psr); + env->psr =3D (psr & PSR_ICC) | (env->psr & ~PSR_ICC); +#endif + + /* Note that pc and npc are handled in the caller. */ + + __get_user(env->y, ®s->y); + + for (i =3D 0; i < 8; i++) { + __get_user(env->gregs[i], ®s->u_regs[i]); + } + for (i =3D 0; i < 8; i++) { + __get_user(env->regwptr[WREG_O0 + i], ®s->u_regs[i + 8]); } - __put_user(mask, &si->si_mask); - return err; } =20 #define NF_ALIGNEDSZ (((sizeof(struct target_signal_frame) + 7) & (~7))) @@ -129,7 +157,7 @@ void setup_frame(int sig, struct target_sigaction *ka, { abi_ulong sf_addr; struct target_signal_frame *sf; - int sigframe_size, err, i; + int sigframe_size, i; =20 /* 1. Make sure everything is clean */ //synchronize_user_stack(); @@ -143,18 +171,14 @@ void setup_frame(int sig, struct target_sigaction *ka, if (!sf) { goto sigsegv; } -#if 0 - if (invalid_frame_pointer(sf, sigframe_size)) - goto sigill_and_return; -#endif /* 2. Save the current process state */ - err =3D setup___siginfo(&sf->info, env, set->sig[0]); + save_pt_regs(&sf->regs, env); __put_user(0, &sf->extra_size); =20 //save_fpu_state(regs, &sf->fpu_state); //__put_user(&sf->fpu_state, &sf->fpu_save); =20 - __put_user(set->sig[0], &sf->info.si_mask); + __put_user(set->sig[0], &sf->si_mask); for (i =3D 0; i < TARGET_NSIG_WORDS - 1; i++) { __put_user(set->sig[i + 1], &sf->extramask[i]); } @@ -165,16 +189,14 @@ void setup_frame(int sig, struct target_sigaction *ka, for (i =3D 0; i < 8; i++) { __put_user(env->regwptr[i + WREG_I0], &sf->ss.win.ins[i]); } - if (err) - goto sigsegv; =20 /* 3. signal handler back-trampoline and parameters */ env->regwptr[WREG_SP] =3D sf_addr; env->regwptr[WREG_O0] =3D sig; env->regwptr[WREG_O1] =3D sf_addr + - offsetof(struct target_signal_frame, info); + offsetof(struct target_signal_frame, regs); env->regwptr[WREG_O2] =3D sf_addr + - offsetof(struct target_signal_frame, info); + offsetof(struct target_signal_frame, regs); =20 /* 4. signal handler */ env->pc =3D ka->_sa_handler; @@ -218,7 +240,7 @@ long do_sigreturn(CPUSPARCState *env) { abi_ulong sf_addr; struct target_signal_frame *sf; - abi_ulong up_psr, pc, npc; + abi_ulong pc, npc; target_sigset_t set; sigset_t host_set; int i; @@ -234,29 +256,17 @@ long do_sigreturn(CPUSPARCState *env) if (sf_addr & 3) goto segv_and_exit; =20 - __get_user(pc, &sf->info.si_regs.pc); - __get_user(npc, &sf->info.si_regs.npc); + __get_user(pc, &sf->regs.pc); + __get_user(npc, &sf->regs.npc); =20 if ((pc | npc) & 3) { goto segv_and_exit; } =20 /* 2. Restore the state */ - __get_user(up_psr, &sf->info.si_regs.psr); - - /* User can only change condition codes and FPU enabling in %psr. */ - env->psr =3D (up_psr & (PSR_ICC /* | PSR_EF */)) - | (env->psr & ~(PSR_ICC /* | PSR_EF */)); - + restore_pt_regs(&sf->regs, env); env->pc =3D pc; env->npc =3D npc; - __get_user(env->y, &sf->info.si_regs.y); - for (i=3D0; i < 8; i++) { - __get_user(env->gregs[i], &sf->info.si_regs.u_regs[i]); - } - for (i=3D0; i < 8; i++) { - __get_user(env->regwptr[i + WREG_O0], &sf->info.si_regs.u_regs[i += 8]); - } =20 /* FIXME: implement FPU save/restore: * __get_user(fpu_save, &sf->fpu_save); @@ -267,11 +277,8 @@ long do_sigreturn(CPUSPARCState *env) * } */ =20 - /* This is pretty much atomic, no amount locking would prevent - * the races which exist anyways. - */ - __get_user(set.sig[0], &sf->info.si_mask); - for(i =3D 1; i < TARGET_NSIG_WORDS; i++) { + __get_user(set.sig[0], &sf->si_mask); + for (i =3D 1; i < TARGET_NSIG_WORDS; i++) { __get_user(set.sig[i], &sf->extramask[i - 1]); } =20 --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317766; cv=none; d=zohomail.com; s=zohoarc; b=gzs+Eu/kczDIt8doi4gzuvc7K0ZUoWWA1RZh6uAESn8u9qnFDfLPcJTYEJ6pXyDAjzHgcQ2oUlRUGbhG9X4svtoFwVcvuigVbYt/xxAWx5yVVGNhcEAEHA4rOtnZkzqO6qT5papOxg8WAipO3zYAu+mV4F7n7+YyKwqO3a2Ftbs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317766; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=RjmzNiqX/HTvl9sPUYpG2flxCzIiFrj0/u9nqI9FbRc=; b=Wm4ncGsg3CxF9EUWF08GeAw532cXXEVUSiuMPD6m51AVz0CfPwbnC8/AEJUC8X+/h3rcGtnjKOJgFKhQbgA/bj8b3MF7wPJIvxwKbeA3nO8Agyta7wR/+C91ost/0tVPz3MwBDMfhB5IKMvAu5pBZO6x6w0PwjR1w56HxYdCoSM= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317766417733.4118160124117; Mon, 17 May 2021 23:02:46 -0700 (PDT) Received: from localhost ([::1]:43812 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisoX-0008JN-Lc for importer@patchew.org; Tue, 18 May 2021 02:02:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38618) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKf-0007SF-Hu for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:53 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:53775) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKY-00073X-Tv for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:53 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MUpCz-1lrMdl3Asz-00Qfxd; Tue, 18 May 2021 07:31:44 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 23/59] linux-user/sparc: Split out save_reg_win Date: Tue, 18 May 2021 07:30:55 +0200 Message-Id: <20210518053131.87212-24-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:K2qmxzMh3jHMdE92C7fZj5Oufy+9Fm/bEJ+tQggSkWkjLNtx1r4 m70N24jAF3GYddMuVcXMRoXsKiOzFBqA8vpgV2x/MRbhUsfYZ42zMBr84yI2e7QraTA33pZ 63HOyA39oIPrpmFmeHFzzKA/3qXvv0lY5xFpyo1IxOstp7kWTskDhpWNGCnC/Dw9PsLtWt2 a3wl9HazHPgdHh5pz47WQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:3y1/3yzFB44=:qDynCUmxMyFaahYlWNakRa pQyYAZ05xiiBklRvzKK6PJa4d9NW+hxTgQNXjGewkqUvcAFZhaPqX6lzi0JAC22YVkzH8Tpdm egIkKPXKukdIVLAW/WZniHMc5xAvL9GDY8RmJQE3kQoyqu1Zuz8W0km16rA6MvrHSLB+g6pEh XV9e3vwm4ZyjSXwGHFQ1ZnJNu5y0hRs5mXnRwEr2cemAXy5jOTrDzRKIolw4K7W7sq7XSgaCe A2cYosF1kPyFDNQ7YnKuPyZIgjSQ7SuJaa/YuSt7MezvxdiEhg9+C41RYtNS8F9jt8m9OHPzU +o6+EBOsdO1U2ZK3YzbwrKlXoIeQOzMyo8RGHRXrPiS1/imA0/chzqOTEkHkEeGuiGR9D1gcM HJUrmKaZTFWS3p0ZCTvtHpOII6utiUwBpRvDUBWnkhqiOmYFGuQWCBh0XaGB2mTSBUo1o3Q4V CY5Zfjjm/5xNgTZ9+HAKvDMvjeRoLi5uoGgA8UTwhgWRER+L7qJCjAa7/zVdEY3ULwikewlzH pK+pCq+YsXlIGPJBTEHzfQ= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.131; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-17-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 0d9305818f8c..69fee5a76a8b 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -150,6 +150,18 @@ static void restore_pt_regs(struct target_pt_regs *reg= s, CPUSPARCState *env) } } =20 +static void save_reg_win(struct target_reg_window *win, CPUSPARCState *env) +{ + int i; + + for (i =3D 0; i < 8; i++) { + __put_user(env->regwptr[i + WREG_L0], &win->locals[i]); + } + for (i =3D 0; i < 8; i++) { + __put_user(env->regwptr[i + WREG_I0], &win->ins[i]); + } +} + #define NF_ALIGNEDSZ (((sizeof(struct target_signal_frame) + 7) & (~7))) =20 void setup_frame(int sig, struct target_sigaction *ka, @@ -183,12 +195,7 @@ void setup_frame(int sig, struct target_sigaction *ka, __put_user(set->sig[i + 1], &sf->extramask[i]); } =20 - for (i =3D 0; i < 8; i++) { - __put_user(env->regwptr[i + WREG_L0], &sf->ss.win.locals[i]); - } - for (i =3D 0; i < 8; i++) { - __put_user(env->regwptr[i + WREG_I0], &sf->ss.win.ins[i]); - } + save_reg_win(&sf->ss.win, env); =20 /* 3. signal handler back-trampoline and parameters */ env->regwptr[WREG_SP] =3D sf_addr; --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317505; cv=none; d=zohomail.com; s=zohoarc; b=OLHvFmH0t8cAC7WTbheZySC4Hvxn6QE3qb72mpnq33Lylb/BV4j8agX4kIpGtXSTsLqYFARZdcf0+c299Y90+fB7u/0taVaZqBdllWl3eMNXynlSBjNwqZ7F81mdBGajnJTUYdZVObhQ+WAXyfjcfZEinWyi9ELMEV+cu8Qpz7Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317505; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=61rFI5PKzcOz/G10Rq+BczzBIfY7SgPblFIfT5kjN9Q=; b=bs7yaV1X+xrKB75MOHp+X3fe+LiJbIeZKTNFDbLl7tZLuGz1lpR7B21NLCUhRZRO9uuFzdGrpZiMwwqK4mrnCL08QSofTmu3PRsrCuh6HRqmMmYSjAxHZQ98qV/kZsLCZrHZ2Cn3DL1y3Nj8Wa9UjnFAkF1YfMm82fi9htoynEo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317505291709.7232595875596; Mon, 17 May 2021 22:58:25 -0700 (PDT) Received: from localhost ([::1]:58170 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liskK-00078f-8h for importer@patchew.org; Tue, 18 May 2021 01:58:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38562) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKd-0007MV-4L for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:51 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:37511) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKZ-00073e-Ay for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:50 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M4ahC-1ljQpT0i1O-001kxe; Tue, 18 May 2021 07:31:45 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 24/59] linux-user/sparc: Clean up get_sigframe Date: Tue, 18 May 2021 07:30:56 +0200 Message-Id: <20210518053131.87212-25-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:Y23eJeByVcdaXufsDKSY7vQTyD+/2j5XrkjWQfjC4Cw6M1UUwj7 02O84q1LlQDwiwsgq9ic0Hx9P1e7apeLMO4s7PJB/fpKN94p2WJpZElxMLxDQY1ZzereVlo 83w94LfeXNmRNxO7W/xvEuGDnwbaILGQkwR/INu1ZSQXx1LjrIVs5BbUUkKZa9ZVcmtH+eW 32MZgEbrmmBZpVt77Go9w== X-UI-Out-Filterresults: notjunk:1;V03:K0:6s7TOdQVoIs=:duT049otYUhQKW2QHHqqpE /1PtXM/U1AVCUtyAl24dCG7EzoRpqAQLsX37D5ZXviFhXW8UgBDFImJP7tyfy3Fnk0qu1lmUP 9HojYkBk+c3SNpwQT6967FUZCgBbmzqIAhT+9PzNWgYP7/cf6lvC3Y6w270MDv4YkDUizIcVN VLpFecs7gPZ4P0I+7Hs4JmBViQpuMGS2D8IYbblRMH7BdXJVVw6rUpCrLsYwMtVMRb1jAcjyO DXxHR5Nrj2zQ5CFn3QTNqvw0z7u7Rls7mamojKTGHzHphzIpZs7NtTA7qeHcb3M/MgyqKn/+t HeZllctPg4ju8niE45c/tCGQ1FrhDjfWCeV4GdeMOb2QJeuqPJlg44NFG5C5VwDbuwWOuJAP/ F+6hPThqqoye9/5DmBzPn6fht/ZiUo51GGCkHuGpSqMgsDI2/W/COLuXaV0iVCStFXYdzCtLV ic1QGiTTZsdQeUCinHdvARRU7ijHkiHKoG33C1sumVFoBX86PV9J/FfGOH9/jiLS3QZvfyfIk TImgco3EmrLj2/NMHd3r8w= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.135; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Remove inline; fix spacing and comment format. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-18-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 69fee5a76a8b..57dbc72c9949 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -65,24 +65,25 @@ struct target_signal_frame { qemu_siginfo_fpu_t fpu_state; }; =20 -static inline abi_ulong get_sigframe(struct target_sigaction *sa,=20 - CPUSPARCState *env, - unsigned long framesize) +static abi_ulong get_sigframe(struct target_sigaction *sa, + CPUSPARCState *env, + size_t framesize) { abi_ulong sp =3D get_sp_from_cpustate(env); =20 /* * If we are on the alternate signal stack and would overflow it, don'= t. * Return an always-bogus address instead so we will die with SIGSEGV. - */ + */ if (on_sig_stack(sp) && !likely(on_sig_stack(sp - framesize))) { - return -1; + return -1; } =20 /* This is the X/Open sanctioned signal stack switching. */ sp =3D target_sigsp(sp, sa) - framesize; =20 - /* Always align the stack frame. This handles two cases. First, + /* + * Always align the stack frame. This handles two cases. First, * sigaltstack need not be mindful of platform specific stack * alignment. Second, if we took this signal because the stack * is not aligned properly, we'd like to take the signal cleanly --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317597; cv=none; d=zohomail.com; s=zohoarc; b=XejjNxzexCWITCN/7QDUMGy14qWlbJINMeWNGyigBLJHUARDvOyvz/YKhVG29FMT6EcxOWQzPrPAgrec52gW9qT6Wattdweo6LkbrsVELYy+M1Xw3z8lVB4AUsxguZ8f7J3UCtpe3DPg1j/18+mTqdPll5R2Ljl6/uFWkzkeNg8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317597; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KdCF+sOIW28MolcKmvk05rGa06IyHCSU5nYcZ5mIZr8=; b=jKJyqVZjjA1mbEIQkgXgDLB31IKjsagUFYjSYEQpNLO2m+cAtCL72DoVBmsmF4IUti4vLgXoMzxqs7i/GR7iBoc2/DzZxxmj/npuia8lhd+WMYbMmWGe+KfuzseLoKoAEWg4wTJJov1gDgj4X0fbVczseci8SiRLOrvY0mbV4aY= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 162131759748593.52413622594884; Mon, 17 May 2021 22:59:57 -0700 (PDT) Received: from localhost ([::1]:35658 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lislo-0002e8-DC for importer@patchew.org; Tue, 18 May 2021 01:59:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38572) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKd-0007N3-GL for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:51 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:46909) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKZ-00073t-ME for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:51 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MRC3Y-1m5tMj2TrQ-00N9jU; Tue, 18 May 2021 07:31:45 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 25/59] linux-user/sparc: Save and restore fpu in signal frame Date: Tue, 18 May 2021 07:30:57 +0200 Message-Id: <20210518053131.87212-26-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:MrodjR0SfSHrd8asxsNpQjYphJC2m2oB8vNj/1K4zZo0gADjW7K nUc8WXBADfK3njGUC7adRCS4sHs8NlKKQTJWEudMwp3zPLx5fnya97f2e0T/Z3bqM70CxCf fkp+twXMKz9TVuPxKLRLDInpXElwC11lM25QvcL5RJehR0H34ew7EGmu96NpW82RSuZf3Tp 8v8oQQ05dcmpmT0iD9cAw== X-UI-Out-Filterresults: notjunk:1;V03:K0:/RZ1JrAKCAQ=:i13FlK6h8m5XVQlSg+vm9m honIXXTU1bBm4PPW9qK0H284z/kNhley3aIEBKNKT1+n7TiLyEbJkWVZWME0i9/dDghvs92DA s39hRZ5xHHZZQ51j63SlhfqpASxbQWWjYHxOxv5ezqWb3ohHYCZS7yLj1IaHZal7lEnJN5ID6 6a1iITV44CdjIHXyDBeZC5pel2Fm3otSQvkobQOMe7anWeESJHMzME4FPuevDKJPGGGDlgiY9 uWUaw+hfiX42VdOyJ6B6nna+y0LnQaWFJEe1c9ZRr8ARVXGu1B7saRJS7Pw8UNfWqDeWgWsO2 qwt/cKfPm+dwQfhnuIofbfMxiroMZvXkr/OKyCPPZpe6Tpz6APglLVteV1rbqDegqaU91GX8z 2yVzw5Rb4W9Ce3EE0MGLWUHkk6cycYijvUd8sRJDfdcKME7uJXLuVgLhddtebhYjkpNTpD2Lh En2buklbDjZZ/mp/3jlt3ptCm3iuJ2k4bsxsi74K0yD5RB5X1cUyNR3kIOMPTGc0qX9VIWxtj l+6ZlHv0U2cCX0nk6ohWY0= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-19-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 84 ++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 33 deletions(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 57dbc72c9949..59bb4495121e 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -43,26 +43,25 @@ struct target_stackf { abi_ulong xargs[8]; }; =20 -typedef struct { - abi_ulong si_float_regs[32]; - unsigned long si_fsr; - unsigned long si_fpqdepth; +struct target_siginfo_fpu { + /* It is more convenient for qemu to move doubles, not singles. */ + uint64_t si_double_regs[16]; + uint32_t si_fsr; + uint32_t si_fpqdepth; struct { - unsigned long *insn_addr; - unsigned long insn; + uint32_t insn_addr; + uint32_t insn; } si_fpqueue [16]; -} qemu_siginfo_fpu_t; - +}; =20 struct target_signal_frame { struct target_stackf ss; struct target_pt_regs regs; - uint32_t si_mask; - abi_ulong fpu_save; - uint32_t insns[2] QEMU_ALIGNED(8); - abi_ulong extramask[TARGET_NSIG_WORDS - 1]; - abi_ulong extra_size; /* Should be 0 */ - qemu_siginfo_fpu_t fpu_state; + uint32_t si_mask; + abi_ulong fpu_save; + uint32_t insns[2] QEMU_ALIGNED(8); + abi_ulong extramask[TARGET_NSIG_WORDS - 1]; + abi_ulong extra_size; /* Should be 0 */ }; =20 static abi_ulong get_sigframe(struct target_sigaction *sa, @@ -163,33 +162,51 @@ static void save_reg_win(struct target_reg_window *wi= n, CPUSPARCState *env) } } =20 -#define NF_ALIGNEDSZ (((sizeof(struct target_signal_frame) + 7) & (~7))) +static void save_fpu(struct target_siginfo_fpu *fpu, CPUSPARCState *env) +{ + int i; + + for (i =3D 0; i < 16; ++i) { + __put_user(env->fpr[i].ll, &fpu->si_double_regs[i]); + } + __put_user(env->fsr, &fpu->si_fsr); + __put_user(0, &fpu->si_fpqdepth); +} + +static void restore_fpu(struct target_siginfo_fpu *fpu, CPUSPARCState *env) +{ + int i; + + for (i =3D 0; i < 16; ++i) { + __get_user(env->fpr[i].ll, &fpu->si_double_regs[i]); + } + __get_user(env->fsr, &fpu->si_fsr); +} =20 void setup_frame(int sig, struct target_sigaction *ka, target_sigset_t *set, CPUSPARCState *env) { abi_ulong sf_addr; struct target_signal_frame *sf; - int sigframe_size, i; + size_t sf_size =3D sizeof(*sf) + sizeof(struct target_siginfo_fpu); + int i; =20 /* 1. Make sure everything is clean */ - //synchronize_user_stack(); =20 - sigframe_size =3D NF_ALIGNEDSZ; - sf_addr =3D get_sigframe(ka, env, sigframe_size); + sf_addr =3D get_sigframe(ka, env, sf_size); trace_user_setup_frame(env, sf_addr); =20 - sf =3D lock_user(VERIFY_WRITE, sf_addr, - sizeof(struct target_signal_frame), 0); + sf =3D lock_user(VERIFY_WRITE, sf_addr, sf_size, 0); if (!sf) { goto sigsegv; } + /* 2. Save the current process state */ save_pt_regs(&sf->regs, env); __put_user(0, &sf->extra_size); =20 - //save_fpu_state(regs, &sf->fpu_state); - //__put_user(&sf->fpu_state, &sf->fpu_save); + save_fpu((struct target_siginfo_fpu *)(sf + 1), env); + __put_user(sf_addr + sizeof(*sf), &sf->fpu_save); =20 __put_user(set->sig[0], &sf->si_mask); for (i =3D 0; i < TARGET_NSIG_WORDS - 1; i++) { @@ -226,7 +243,7 @@ void setup_frame(int sig, struct target_sigaction *ka, val32 =3D 0x91d02010; __put_user(val32, &sf->insns[1]); } - unlock_user(sf, sf_addr, sizeof(struct target_signal_frame)); + unlock_user(sf, sf_addr, sf_size); return; #if 0 sigill_and_return: @@ -248,7 +265,7 @@ long do_sigreturn(CPUSPARCState *env) { abi_ulong sf_addr; struct target_signal_frame *sf; - abi_ulong pc, npc; + abi_ulong pc, npc, ptr; target_sigset_t set; sigset_t host_set; int i; @@ -276,14 +293,15 @@ long do_sigreturn(CPUSPARCState *env) env->pc =3D pc; env->npc =3D npc; =20 - /* FIXME: implement FPU save/restore: - * __get_user(fpu_save, &sf->fpu_save); - * if (fpu_save) { - * if (restore_fpu_state(env, fpu_save)) { - * goto segv_and_exit; - * } - * } - */ + __get_user(ptr, &sf->fpu_save); + if (ptr) { + struct target_siginfo_fpu *fpu; + if ((ptr & 3) || !lock_user_struct(VERIFY_READ, fpu, ptr, 1)) { + goto segv_and_exit; + } + restore_fpu(fpu, env); + unlock_user_struct(fpu, ptr, 0); + } =20 __get_user(set.sig[0], &sf->si_mask); for (i =3D 1; i < TARGET_NSIG_WORDS; i++) { --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317700; cv=none; d=zohomail.com; s=zohoarc; b=F5Bll6X2u2GVp+lvmBvs3DBMvx0wXd5hP5tqTN1J9zbgJMBxN6uQNVyA/AqfUM/prlI84hjExTnt/pN5d9xHegg9ATIixvxQ0XcU+GaYwOgS+3CA+x9j5aajiDWYeNOqG9O+jsGiYOX5560sntprtP5+mKkaBtg4HHinjwG7TNg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317700; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BB/2J3+06BdIrB+lW60VLV+vXyqThCXXIkncBvbmPcM=; b=bSYy0yIxiHSdD3Shrfh/8HEcp/u1J936PlMEaaG+V35SrsE1u67gvFbAH+gCBb+0b0JtwtsnlZofU9ovc9tpuofGwREa/+rmcVaTwie2LXPRVi61RjG3mLGn8XatJYyyZAYpfX5sjBtRdQvYdK0wSfclQknF1/c2Q9hWf3oyG5w= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 162131769999717.23169780678029; Mon, 17 May 2021 23:01:39 -0700 (PDT) Received: from localhost ([::1]:38110 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lismX-0004K1-K9 for importer@patchew.org; Tue, 18 May 2021 02:00:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38582) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKd-0007NN-QP for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:52 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:55627) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKa-000748-8K for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:51 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MFKbB-1lgQR90nUn-00Flr3; Tue, 18 May 2021 07:31:46 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 26/59] linux-user/sparc: Add rwin_save to signal frame Date: Tue, 18 May 2021 07:30:58 +0200 Message-Id: <20210518053131.87212-27-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:qYmK0xUYuefZzH0MoLWsHZA4pHRgoMrIzl1AqxqvLQrdwW102mf qKm3oHhZpf7PApBYYFUJzZ4u4mLlG4XvqjYoYpvlamziDGO+RWH1elC0cI1D55OaqsHShI2 AKLxeDmqPF0Glz4WdzzXQGLsuMXAqz9/B82/l+Fy+xWvTs9/NTT78ziZ2itzqsuTAve8JWW 0r3Q80GAkwjFrh7Og983Q== X-UI-Out-Filterresults: notjunk:1;V03:K0:Pzp3nhEHQUg=:c3+smK89o9oAZLxyN2JU8e QXMH8y4dM6v4lTvtAvRQHIrhnZrbje0Z04Swmj9Rvs0kYihqran5v2op38cvQIRxVGrH07EjK 74KjgVAX5LcqEpPbRukuAnAfCL1A+SaCgHp/wprdRgsf/KH5cNjhgmN2CsXtYfS+fOIJiTXGg SBMOpmFzHRY9NqnpxZKuDBH4jOwkqBUZacdGis5OGqZ5ALvc1HxNI9qPKHj8vqXMzEnxHHpmO 4InASAmAHqBb/h6c0AyprVLsIyl/ESQp/V1KjkO0P44u+rGfoD3aTX7w/Sz1t3tcaukc8MHTx nv/0sDW4H0rnuDVGNuwlDRgiPWe9A0NuEk99fv9b+yiBO2fZ10ydf2hykgTwOvdVIhR/fSPsh uA9OnJyKCF2VjU1axXcL+TTaGdVabuoyzXDtzUCzHSJaYsdQh0z7xgRiMm6wNbBBIa1THjgkd WutCHaXrVoHJGtn6CBBkHSNKWfGoUedEINJNwLY7h/LjN2wBfGKjxhkfidEJhsW2IXly2NjDT nK0M5q3lRJiijN+Ve66KTs= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Stub it out to zero, but at least include it. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-20-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 59bb4495121e..4a0578ebf37b 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -62,6 +62,7 @@ struct target_signal_frame { uint32_t insns[2] QEMU_ALIGNED(8); abi_ulong extramask[TARGET_NSIG_WORDS - 1]; abi_ulong extra_size; /* Should be 0 */ + abi_ulong rwin_save; }; =20 static abi_ulong get_sigframe(struct target_sigaction *sa, @@ -208,6 +209,8 @@ void setup_frame(int sig, struct target_sigaction *ka, save_fpu((struct target_siginfo_fpu *)(sf + 1), env); __put_user(sf_addr + sizeof(*sf), &sf->fpu_save); =20 + __put_user(0, &sf->rwin_save); /* TODO: save_rwin_state */ + __put_user(set->sig[0], &sf->si_mask); for (i =3D 0; i < TARGET_NSIG_WORDS - 1; i++) { __put_user(set->sig[i + 1], &sf->extramask[i]); @@ -303,6 +306,11 @@ long do_sigreturn(CPUSPARCState *env) unlock_user_struct(fpu, ptr, 0); } =20 + __get_user(ptr, &sf->rwin_save); + if (ptr) { + goto segv_and_exit; /* TODO: restore_rwin */ + } + __get_user(set.sig[0], &sf->si_mask); for (i =3D 1; i < TARGET_NSIG_WORDS; i++) { __get_user(set.sig[i], &sf->extramask[i - 1]); --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316627; cv=none; d=zohomail.com; s=zohoarc; b=Ad3x8Boag4GcG//9BOLmF+mBjPoOXbke7h+8mpjJUg6KRE03aan2GpKvwxXmJSC0SKk7IKNYGPyUB37npZFrRhRGrT1mIYYwblxkzPw3Wal/5tYK41j0JuBpEQN9+CS1nf/IMC0/Hixvoa+J10SjD6FaepIAmDvqlRhQ6vIHc2E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316627; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kT/iDkD8mVwazS6sVSHV9ZY3eKN00k4pOg364vqPGJ0=; b=eWngFIhB5ZuDn1UeDHkIxhk0q4uCWSbqvj1ieQ6u9GNbebtZxx6kIXPvXMsmiE9kYCjBW9dIWkg3hc4F25x58zO/XJpSy1SQvG142DPElpfNJ0sHzPEo0gkDDHLyt5V+IVtflhSQBBTImKh8Fj6b6LkGR2IzCbrtg9NmD+CpmWY= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316627882760.395733491706; Mon, 17 May 2021 22:43:47 -0700 (PDT) Received: from localhost ([::1]:49546 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisWA-0007Mo-TF for importer@patchew.org; Tue, 18 May 2021 01:43:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38690) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007Yo-Qw for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:01 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:35237) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKb-00074f-3d for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:01 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MGzI3-1ldfXt2ohH-00E6tT; Tue, 18 May 2021 07:31:46 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 27/59] linux-user/sparc: Clean up setup_frame Date: Tue, 18 May 2021 07:30:59 +0200 Message-Id: <20210518053131.87212-28-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:O6o4lxWFP6lgjUZn8R2ul7q8ED1LuM6zEnjgHOMBjRMIiINHwWz s+idrNuDzMsCUdM8zL8+eNdITooqw4kMkPpWlVgz8WTHDBPUbljdEmy6sigbO68hxPyGq6t vAYznLtEQNYk6VNi/AZWSQnvHzDAszi4OAe65W4f8xvOxsdbmgcmuqo6oF6rJSrAg/TgLlW +ACp8dutIpvmWTzFx9IkA== X-UI-Out-Filterresults: notjunk:1;V03:K0:oWf+8smovsw=:DIqaO+yPpfPgLa2M9vghta GvYaIcl06pA8upASCWVEbelguXBW7D+xPGdKDfzBuaFBno/kFYIo54xRctj47ln0iGvdQFgky BSt0CISVraT6iAVjFOsqPvuu0Z8wvLydqwJ6fFLtY06hh6PRRsBbQmUPs04ITZZjxHuB9pYfE uOZi+a94k5shf9iDq9g2pDDj6lcVlCg44xDtmm7Tljs0AhMNKsJFFNDRO0/NIPpMf2x58CkPG PD+TXgHahFb0k4osrunhk5MdEbg/Gc3ybHFPRbg0w7Bb0Irl80pvtuGsvIeO9eXUFWZV+YpPd NZcaxpaEid2YX7u1CURFxsrP7VtT/Gij0r/w1yxvVS7H+ONGQMlmIrsHG2aKziSkRHUTYQSSS jg4NL9iY8hy/hjqrltrv+zb2gWgu7yP3EU0qnavIkG6JKUx5oHBksPWe78fQTw/z9TKskDSiu EM0cY4CVAnbzF2R3tlBi31INotEF4L0tUvnc4onglADpjNrGrgnQqXbJFHQBTa9oY/oFIIudO 3q4dTqFsVW/uipvhTncW+g= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.130; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Clean up a goto label with a single use. Remove #if 0. Remove useless parentheses. Fold constants into __put_user. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-21-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 4a0578ebf37b..f0f614a3af7a 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -192,14 +192,13 @@ void setup_frame(int sig, struct target_sigaction *ka, size_t sf_size =3D sizeof(*sf) + sizeof(struct target_siginfo_fpu); int i; =20 - /* 1. Make sure everything is clean */ - sf_addr =3D get_sigframe(ka, env, sf_size); trace_user_setup_frame(env, sf_addr); =20 sf =3D lock_user(VERIFY_WRITE, sf_addr, sf_size, 0); if (!sf) { - goto sigsegv; + force_sigsegv(sig); + return; } =20 /* 2. Save the current process state */ @@ -228,33 +227,21 @@ void setup_frame(int sig, struct target_sigaction *ka, =20 /* 4. signal handler */ env->pc =3D ka->_sa_handler; - env->npc =3D (env->pc + 4); + env->npc =3D env->pc + 4; + /* 5. return to kernel instructions */ if (ka->ka_restorer) { env->regwptr[WREG_O7] =3D ka->ka_restorer; } else { - uint32_t val32; - env->regwptr[WREG_O7] =3D sf_addr + offsetof(struct target_signal_frame, insns) - 2 * 4; =20 /* mov __NR_sigreturn, %g1 */ - val32 =3D 0x821020d8; - __put_user(val32, &sf->insns[0]); - + __put_user(0x821020d8u, &sf->insns[0]); /* t 0x10 */ - val32 =3D 0x91d02010; - __put_user(val32, &sf->insns[1]); + __put_user(0x91d02010u, &sf->insns[1]); } unlock_user(sf, sf_addr, sf_size); - return; -#if 0 -sigill_and_return: - force_sig(TARGET_SIGILL); -#endif -sigsegv: - unlock_user(sf, sf_addr, sizeof(struct target_signal_frame)); - force_sigsegv(sig); } =20 void setup_rt_frame(int sig, struct target_sigaction *ka, --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316334; cv=none; d=zohomail.com; s=zohoarc; b=IbeFPQVbuprO4ID9+dbvQsKv90ibqALaGVwacMdYTl7KG1D0cCwGKIC+fzoP83u857/GExn9k4ELzFqqpbELHnn71ovj7IdVitcD0gN+uiAEqkiIltBNmNFAYlj4QvbO8uyE0YJGEf1EQW9ZeprantGeRi63hudaEoxAZHWf4fg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316334; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Rlr/DM62R3JCOLmfPXiwLKsg3SOAqgxLEh3i2J9Q6AE=; b=MlGMt2EPBAel5Qn+eUO9VEBd+xkjIMqIRuxDO5N/0HGuSwH7YIpPcURU3byfk/THXitbAg+kGttW691LIG9Y60/7pb7OMq4Qp5++MUnMnPaCfU2zRBuibA9HgyMecM/mFp7OXCYygNqIilNx/4hGXLSHM2HKxOnaG5k4NmZBjcA= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 162131633400430.059653158698893; Mon, 17 May 2021 22:38:54 -0700 (PDT) Received: from localhost ([::1]:40630 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisRQ-0001Bw-2a for importer@patchew.org; Tue, 18 May 2021 01:38:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38598) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKe-0007PV-Tc for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:52 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:40141) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKb-00075J-Jk for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:52 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MgNQd-1lGgeq0o7b-00hzfn; Tue, 18 May 2021 07:31:47 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 28/59] linux-user/sparc: Minor corrections to do_sigreturn Date: Tue, 18 May 2021 07:31:00 +0200 Message-Id: <20210518053131.87212-29-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:BFI5rHXYAIEDrRze942IqTicXNlMq9tNE+BxoP7KZFzabJYepyB +brjGrKOoVLssvJr7A/pyNbEF8sRpsmWUr5PB4aFlvTmqVWXRp/VvZGH0i5hg/3J0l3gHmx 802XSW+Fad/CCd423YjxHXx4moTWnPHqeiMkT18ewpGxAlaDttpkmKSr1bBCpeTSGN7OrId HeBvU5aP/jH7phxIQzKeg== X-UI-Out-Filterresults: notjunk:1;V03:K0:FRzrQkrgFgQ=:HC5I7Ol2cTI2lrPl0TjZTo XfHe5mgFt0aHFGAalVVEj4+febFF6vmpx0T2gM46p6+JPlyhG7md/DbylvjibfTzGzvnPkMu8 bbTv7yhUDHYhYiesvIfD3/Uw/TgHufj5KCttjBc8KigLbIY+WVBFb3LiEAySCSEfHAkb5iHF2 hBaX6s6g7lPTI0/auuDNEKQsINL6YtT8hyX6+XgB+zEjW9NcwMRmwwZuQ9hvxLlHi2P0rOKSU HHkA2xtZU99yNRKRyCHQpsdSk52B65ayG25eScJkrDLjngoRgCZpT4hoO+IcIqiSxHTxtDoId J8zJzi0qbhlnukq5b9gySFvCdaJZxbzDLr+CAmtILFkyAGCHbK4qMxn/sB2Cywz2GIPGLZ8Q5 HgBu7VxfcHyw3yyvwZ9x8bgrZMQVNpjK+/S+Jg4YMKr1dRy4Kl1EO38RjJ+bwcDjnQbAhm/0q Dc+RFMRY0uyUgyc9hA0ZKtclma+QJu1mvEHbARERzQ2ylQAVM+SDjzBIbzy7WhrEReJMAYxxt VRORaMds5uaEGfX/zl//uM= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.187; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Check that the input sp is 16 byte aligned, not 4. Do that before the lock_user_struct check. Validate the saved sp is 8 byte aligned. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-22-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index f0f614a3af7a..0ff57af43d1e 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -254,7 +254,7 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, long do_sigreturn(CPUSPARCState *env) { abi_ulong sf_addr; - struct target_signal_frame *sf; + struct target_signal_frame *sf =3D NULL; abi_ulong pc, npc, ptr; target_sigset_t set; sigset_t host_set; @@ -262,18 +262,21 @@ long do_sigreturn(CPUSPARCState *env) =20 sf_addr =3D env->regwptr[WREG_SP]; trace_user_do_sigreturn(env, sf_addr); - if (!lock_user_struct(VERIFY_READ, sf, sf_addr, 1)) { - goto segv_and_exit; - } =20 /* 1. Make sure we are not getting garbage from the user */ + if ((sf_addr & 15) || !lock_user_struct(VERIFY_READ, sf, sf_addr, 1)) { + goto segv_and_exit; + } =20 - if (sf_addr & 3) + /* Make sure stack pointer is aligned. */ + __get_user(ptr, &sf->regs.u_regs[14]); + if (ptr & 7) { goto segv_and_exit; + } =20 - __get_user(pc, &sf->regs.pc); + /* Make sure instruction pointers are aligned. */ + __get_user(pc, &sf->regs.pc); __get_user(npc, &sf->regs.npc); - if ((pc | npc) & 3) { goto segv_and_exit; } @@ -309,7 +312,7 @@ long do_sigreturn(CPUSPARCState *env) unlock_user_struct(sf, sf_addr, 0); return -TARGET_QEMU_ESIGRETURN; =20 -segv_and_exit: + segv_and_exit: unlock_user_struct(sf, sf_addr, 0); force_sig(TARGET_SIGSEGV); return -TARGET_QEMU_ESIGRETURN; --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316210; cv=none; d=zohomail.com; s=zohoarc; b=XlIUohR4li/R0vjWubGQ2LCGhEMbNJgk8ITH7E27tzblbaGQ3ZNwgFvhTX3QkVAsMe0mij3bmSiUnp9+rHBxWCRIz6J8Lf881z4+Ft5GGdtFpVLWwSU8ZKzqhCYMMLT1E+mZBGqBHBT0gVEXllRFa0MmfYD/zTvm57QRPTBJsl0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316210; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=A2nc0rX1Iqy4HRlYvwf20T8jLafbFovSTexElWk5DLg=; b=SbwgmBHMbPVyg33Bsm6Pghd87ts2pdnQkyyjM8ALBm1xux6Owh8oYYjO/tNxpXMsjbqb4AwOarN1djQC7icS4ZlGZv6ySSQ++x525lZU7OIa9c/z8pausD1SM1cS04tcZuofRPB7U/BvFPbUD0Qo+XN4nJFmvRcQR8V54PxQ16A= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316210620697.0808110645847; Mon, 17 May 2021 22:36:50 -0700 (PDT) Received: from localhost ([::1]:60370 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisPR-00041t-HZ for importer@patchew.org; Tue, 18 May 2021 01:36:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38596) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKe-0007P7-QY for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:52 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:54723) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKb-00075g-Nl for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:52 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MFbBO-1lhG3B2ays-00H9AI; Tue, 18 May 2021 07:31:47 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 29/59] linux-user/sparc: Add 64-bit support to fpu save/restore Date: Tue, 18 May 2021 07:31:01 +0200 Message-Id: <20210518053131.87212-30-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:kbm87H6GosaiRgNfHBPWWlsPUgW5jJAWAt8CM7dvKd8pnjCOOo3 4fbBeyGomwdL0YfmPPDQRpu1i5UrKkY+5Frg0+PtHXfY2CZizY0XRrB9MidXjEamq3CZojr zb4HKD0+pFxCbNC3PSjB6dNlJHH72FnIL/mWmF5baWqzcRtUR61jFQ0Ry3BaE4OH/+smadM JQMBvK37/W46omGgx/Ocg== X-UI-Out-Filterresults: notjunk:1;V03:K0:nppYtzIi45Y=:f8HQUzN/s2J0+LgxIg88ZA ctIibT7A7SintwICXViQb7QjD4ckUtrmmgN9uoJnhPUS1Oz0zVB34pFl+7WAcsjgthiMUCc4O KafOLDDyLru7RqUzTD7BVH4MPDewP+TTAExMEPgGBOVlO28jNn11gS6G1EKoUxUSGGUfMDdkw EYcKTJpeVupvqFVSuvDb3VDYp1Ott4dEhI7WSN79HjCzJJa4d4Wvc0cw3ajcy3P1EnhKUT43f F90kXdbfUkmVzyiX4mXYZd5fp1afUqJLomQ0+6QsBKXGoQNELG5gf/XiN3QS4q8SH9CVPUOpy a70mpudWDA3cUF+AhARdL5CPcFV5U83eMbot9kX8CD+old1N+jXFkIUF+B/W1WPq1v+6fzCfZ 9MtbTy0ug078g+zY+7+s4Y5eD5Mhe4DST5xZ8Hd7/i7VCvF+ZTivjf0L8gT6hiI/TzmkmZoKL ZJthaabq0taY3Pd9isIXYyhPo+EZsgZsBYBpSJRzNNsdnccJVLr19ZkCO4stSJ99nhKDqIDPl Pjq/bN+6rEs1Udsf+TiZBs= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.131; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson The shape of the kernel's __siginfo_fpu_t is dependent on the cpu type, not the abi. Which is weird, but there ya go. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-23-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 0ff57af43d1e..41a8b33bac3c 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -44,6 +44,12 @@ struct target_stackf { }; =20 struct target_siginfo_fpu { +#ifdef TARGET_SPARC64 + uint64_t si_double_regs[32]; + uint64_t si_fsr; + uint64_t si_gsr; + uint64_t si_fprs; +#else /* It is more convenient for qemu to move doubles, not singles. */ uint64_t si_double_regs[16]; uint32_t si_fsr; @@ -52,6 +58,7 @@ struct target_siginfo_fpu { uint32_t insn_addr; uint32_t insn; } si_fpqueue [16]; +#endif }; =20 struct target_signal_frame { @@ -167,21 +174,50 @@ static void save_fpu(struct target_siginfo_fpu *fpu, = CPUSPARCState *env) { int i; =20 +#ifdef TARGET_SPARC64 + for (i =3D 0; i < 32; ++i) { + __put_user(env->fpr[i].ll, &fpu->si_double_regs[i]); + } + __put_user(env->fsr, &fpu->si_fsr); + __put_user(env->gsr, &fpu->si_gsr); + __put_user(env->fprs, &fpu->si_fprs); +#else for (i =3D 0; i < 16; ++i) { __put_user(env->fpr[i].ll, &fpu->si_double_regs[i]); } __put_user(env->fsr, &fpu->si_fsr); __put_user(0, &fpu->si_fpqdepth); +#endif } =20 static void restore_fpu(struct target_siginfo_fpu *fpu, CPUSPARCState *env) { int i; =20 +#ifdef TARGET_SPARC64 + uint64_t fprs; + __get_user(fprs, &fpu->si_fprs); + + /* In case the user mucks about with FPRS, restore as directed. */ + if (fprs & FPRS_DL) { + for (i =3D 0; i < 16; ++i) { + __get_user(env->fpr[i].ll, &fpu->si_double_regs[i]); + } + } + if (fprs & FPRS_DU) { + for (i =3D 16; i < 32; ++i) { + __get_user(env->fpr[i].ll, &fpu->si_double_regs[i]); + } + } + __get_user(env->fsr, &fpu->si_fsr); + __get_user(env->gsr, &fpu->si_gsr); + env->fprs |=3D fprs; +#else for (i =3D 0; i < 16; ++i) { __get_user(env->fpr[i].ll, &fpu->si_double_regs[i]); } __get_user(env->fsr, &fpu->si_fsr); +#endif } =20 void setup_frame(int sig, struct target_sigaction *ka, --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316622; cv=none; d=zohomail.com; s=zohoarc; b=QZGOHlOICnBgpS+RXNIO0PEFxIYLgFvCY5jWvyPVNuNc8IrAfijAHmWEaW+jDAkEbwdXjgKEavKzd1BonMjEsCDKq3enOpGUJ5QkcFVjiDmR/8IM5CY2Fh9fzeO5/Kr7yEFYme7Il1JmRUOHj3D8lbwha0e+s1PiHyUxkXV1NP4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316622; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fOxGeIRCelj4CONBl1eUcjAiOwwpBUh3lGKn0TnWh9k=; b=RBi4iYkxzNQgh+m6EDS+9o1uLe1uGnXWL6R4pI3nWOkvr5Jm2j/+hFE5/uHTcZVIvn9nD9nJNyUUS8SXDAZGHOe8ot/cWewH2NPWkvh5yfFr0N1ntkgddFRXbXi/7aml/fXnSfAr9RPMb4D7LLcFotVd/RZeWJEqSTIPBGeWJnM= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316622934726.7264970301444; Mon, 17 May 2021 22:43:42 -0700 (PDT) Received: from localhost ([::1]:49138 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisW5-00076i-UC for importer@patchew.org; Tue, 18 May 2021 01:43:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38608) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKf-0007R9-8l for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:53 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:48755) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKc-000766-7V for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:53 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mbiak-1lCa3G0B1a-00dIhm; Tue, 18 May 2021 07:31:48 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 30/59] linux-user/sparc: Implement sparc32 rt signals Date: Tue, 18 May 2021 07:31:02 +0200 Message-Id: <20210518053131.87212-31-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:sQkv67/K9JX6RHNQYdHoIz2T0fY0olvbWAjA4NnMvuFkF5KHjUd ry5DaYbUgEGlcHUEjCiJb41O1YHR/MkllJU3knxJNPXk+Oc1BBB9t52QEmMjZ5Em7NDK0JX 9yOi8t8HOSDZZJfEQJK+xsmayQUsnDDXEOUQ+mVgrDybNQW2jj05SnTc1n+g+FP2/CnwoIy A6ymfRrn2ZjZuZSexYHuQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:RHkgrpiAo6s=:5FaqyRniF1gFEB/tznq3YE WpiZNM018/QsMQVO5NOTi9jA9w3clx74UkF7E5ZlCTKVgXZCO9ldIEqu/lfAlM/BAI7hdqLnO XJV21JQY48Pb/i1EGg2PNDe4oAb5Sc6kkibS8Tsw5M5h9lYAaWEdmmkfcrK+i602Z7adVvFsD 7nscdFLNBBY2fiQPGAazA4wqsR2is/7cjVWzjGMUgwdOS0AyekGILBSP+zfY4gtUsl1gThCjb YGhWZhLM36jaWHzijMzdwbdeCx3nqI4ZfK3CY1jamUHZufRgf7KyMGvZGrkS7wRIlGkMWV4+j Vr/lT3fgXWEgK0VO/RR3kTQhf9mVl0hXx2nlIttNU6/h9Pv/efrhhfL6+Jwpede7beoTC8cZX aZ9Tmy8YyZC2iCRz+D0M2yO7cU22FBN6AI1BuvZPXihzNHogbwoNGSw0bBzXv0O+L1VpnoF73 Rr1kThC51HIjg9UPIUJ4+R7dvyXAo7+/O9gth32cB/hITH/QnM4FtzLkOBzBL9SBCtT5NHhsf mzdx1DZd3Iff+Cb+RFHea8= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.187; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-24-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 126 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 122 insertions(+), 4 deletions(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 41a8b33bac3c..362993da0281 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -72,6 +72,18 @@ struct target_signal_frame { abi_ulong rwin_save; }; =20 +struct target_rt_signal_frame { + struct target_stackf ss; + target_siginfo_t info; + struct target_pt_regs regs; + target_sigset_t mask; + abi_ulong fpu_save; + uint32_t insns[2]; + target_stack_t stack; + abi_ulong extra_size; /* Should be 0 */ + abi_ulong rwin_save; +}; + static abi_ulong get_sigframe(struct target_sigaction *sa, CPUSPARCState *env, size_t framesize) @@ -284,7 +296,59 @@ void setup_rt_frame(int sig, struct target_sigaction *= ka, target_siginfo_t *info, target_sigset_t *set, CPUSPARCState *env) { - qemu_log_mask(LOG_UNIMP, "setup_rt_frame: not implemented\n"); + abi_ulong sf_addr; + struct target_rt_signal_frame *sf; + size_t sf_size =3D sizeof(*sf) + sizeof(struct target_siginfo_fpu); + + sf_addr =3D get_sigframe(ka, env, sf_size); + trace_user_setup_rt_frame(env, sf_addr); + + sf =3D lock_user(VERIFY_WRITE, sf_addr, sf_size, 0); + if (!sf) { + force_sigsegv(sig); + return; + } + + /* 2. Save the current process state */ + save_reg_win(&sf->ss.win, env); + save_pt_regs(&sf->regs, env); + + save_fpu((struct target_siginfo_fpu *)(sf + 1), env); + __put_user(sf_addr + sizeof(*sf), &sf->fpu_save); + + __put_user(0, &sf->rwin_save); /* TODO: save_rwin_state */ + + tswap_siginfo(&sf->info, info); + tswap_sigset(&sf->mask, set); + target_save_altstack(&sf->stack, env); + + __put_user(0, &sf->extra_size); + + /* 3. signal handler back-trampoline and parameters */ + env->regwptr[WREG_SP] =3D sf_addr; + env->regwptr[WREG_O0] =3D sig; + env->regwptr[WREG_O1] =3D + sf_addr + offsetof(struct target_rt_signal_frame, info); + env->regwptr[WREG_O2] =3D + sf_addr + offsetof(struct target_rt_signal_frame, regs); + + /* 4. signal handler */ + env->pc =3D ka->_sa_handler; + env->npc =3D env->pc + 4; + + /* 5. return to kernel instructions */ + if (ka->ka_restorer) { + env->regwptr[WREG_O7] =3D ka->ka_restorer; + } else { + env->regwptr[WREG_O7] =3D + sf_addr + offsetof(struct target_rt_signal_frame, insns) - 2 *= 4; + + /* mov __NR_rt_sigreturn, %g1 */ + __put_user(0x82102065u, &sf->insns[0]); + /* t 0x10 */ + __put_user(0x91d02010u, &sf->insns[1]); + } + unlock_user(sf, sf_addr, sf_size); } =20 long do_sigreturn(CPUSPARCState *env) @@ -356,9 +420,63 @@ long do_sigreturn(CPUSPARCState *env) =20 long do_rt_sigreturn(CPUSPARCState *env) { - trace_user_do_rt_sigreturn(env, 0); - qemu_log_mask(LOG_UNIMP, "do_rt_sigreturn: not implemented\n"); - return -TARGET_ENOSYS; + abi_ulong sf_addr, tpc, tnpc, ptr; + struct target_rt_signal_frame *sf =3D NULL; + sigset_t set; + + sf_addr =3D get_sp_from_cpustate(env); + trace_user_do_rt_sigreturn(env, sf_addr); + + /* 1. Make sure we are not getting garbage from the user */ + if ((sf_addr & 15) || !lock_user_struct(VERIFY_READ, sf, sf_addr, 1)) { + goto segv_and_exit; + } + + /* Validate SP alignment. */ + __get_user(ptr, &sf->regs.u_regs[8 + WREG_SP]); + if ((ptr + TARGET_STACK_BIAS) & 7) { + goto segv_and_exit; + } + + /* Validate PC and NPC alignment. */ + __get_user(tpc, &sf->regs.pc); + __get_user(tnpc, &sf->regs.npc); + if ((tpc | tnpc) & 3) { + goto segv_and_exit; + } + + /* 2. Restore the state */ + restore_pt_regs(&sf->regs, env); + + __get_user(ptr, &sf->fpu_save); + if (ptr) { + struct target_siginfo_fpu *fpu; + if ((ptr & 7) || !lock_user_struct(VERIFY_READ, fpu, ptr, 1)) { + goto segv_and_exit; + } + restore_fpu(fpu, env); + unlock_user_struct(fpu, ptr, 0); + } + + __get_user(ptr, &sf->rwin_save); + if (ptr) { + goto segv_and_exit; /* TODO: restore_rwin_state */ + } + + target_restore_altstack(&sf->stack, env); + target_to_host_sigset(&set, &sf->mask); + set_sigmask(&set); + + env->pc =3D tpc; + env->npc =3D tnpc; + + unlock_user_struct(sf, sf_addr, 0); + return -TARGET_QEMU_ESIGRETURN; + + segv_and_exit: + unlock_user_struct(sf, sf_addr, 0); + force_sig(TARGET_SIGSEGV); + return -TARGET_QEMU_ESIGRETURN; } =20 #if defined(TARGET_SPARC64) && !defined(TARGET_ABI32) --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317992; cv=none; d=zohomail.com; s=zohoarc; b=Rvfg4tD5+xWKZTbp8yHHEScjKgFhxqBwUx3AkfMjupraClsiqUDAvUI9b1Vob9U3ZKL/+8RshAlyZPBJkzQ0gIM4/88P+MbVKE9ehzBuScda9dsklfY+oxgqRSMQ6cb3wpglc8J7sAxrNBb2Ks0BL0mOsxWt00y8977ViOeJ/XQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317992; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vN0oDmsc3UjdjL1taGIQ6tt3WLAuELNqFNQqNdnFgB4=; b=eTl+L9A66we/kcCEh8aImlKdrf+sqeQkmkWoRM5tYzRGS9yGRGL02OJi25OuudJ7eiI3bZBCtR40ZQZmsf5t10EsRvQjgTDyRHeoImB0Jp4U4gddJbyFCi/BinscDq7BQKKc7QEkLwtBpkQzD8ClDHlKlo1ql9qwiLDTxk2w6Es= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317992415811.9458151182379; Mon, 17 May 2021 23:06:32 -0700 (PDT) Received: from localhost ([::1]:51414 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lissA-0005HZ-Pm for importer@patchew.org; Tue, 18 May 2021 02:06:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38694) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKo-0007ZR-1s for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:02 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:44917) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKc-00076T-HN for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:01 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N1OsF-1lJxtv1x8N-012lfb; Tue, 18 May 2021 07:31:48 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 31/59] linux-user/sparc: Implement sparc64 rt signals Date: Tue, 18 May 2021 07:31:03 +0200 Message-Id: <20210518053131.87212-32-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:9qQKTiCwx+AMz9H92rw+WPETdOsjBQVsDKIF5oBd9PUW9lS92/s sUT1QUpF0RSW4rI4uvMwiyMhwxZS/K+sOpGDq56o4juQFJ+3n7VBgLfq+Dn6JYPl8yHWaeK 2m7GdC8XgKay74gdd3XQiuc/jGyJSnGciYbM2LR7UU865OZ58mE9I7lkaDMzRK6gZ2FIqLX 8Q40pLdwMKBOIiYFjXsxQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:SVKOrcXhP0I=:K/tUwSNmN/+38b75S7t1r1 kMLRwukGgdtCw1FdRCBwSk0X+cVwjfxQ8h6t6C0o8e0SaUtaVCK5cTVw+t8q0bm4sNT58PhRo QZ2Z/yjXkPdxJppRCaoHTSLKtkHD4N+qGQpmh0J1M3C9q3j9fVSYK9NdHI7r4mP0A6QNGGxeE cNMaSMyIsYFQhx/kH5rhnyxBv3gPL8Yv+qythzJ+3+yxnXRaOW/jE0Tiy3G7+K8xTaulnrTVp CL/yf4u+7fwwgdAqgax42Uo3RibJ/Fd2gAZsFq4VO4Jcqa7yynYSNAj/+sO4dxbLkAL1SWuip Q53OZ1acXz/D7J37OkdhAB61gKmnfHYU0ftb8cYCXv55XCDiia63kpruz4PAM4aU3eHaxRijt Anu/GcIvH0gwKt9H6xWUpuEW5BYIEuV8e+z9jNDGPaqQB3oZ5PjSXg5I5fITXWVozxPulArlI CWWJLFe4XmZ4eQtnDp8nXMCv/3o/45VdYU1TF57Qx2IqUf4mhJbfIuXWRLatAucs3bRUm8sGw NDFjvXmSV9cVXi9pyge0EM= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-25-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/sparc/signal.c | 27 ++++++++++++++++++++++++++- linux-user/sparc/target_signal.h | 2 ++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 362993da0281..0cc3db5570e8 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -61,6 +61,7 @@ struct target_siginfo_fpu { #endif }; =20 +#ifdef TARGET_ARCH_HAS_SETUP_FRAME struct target_signal_frame { struct target_stackf ss; struct target_pt_regs regs; @@ -71,16 +72,23 @@ struct target_signal_frame { abi_ulong extra_size; /* Should be 0 */ abi_ulong rwin_save; }; +#endif =20 struct target_rt_signal_frame { struct target_stackf ss; target_siginfo_t info; struct target_pt_regs regs; +#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32) + abi_ulong fpu_save; + target_stack_t stack; + target_sigset_t mask; +#else target_sigset_t mask; abi_ulong fpu_save; uint32_t insns[2]; target_stack_t stack; abi_ulong extra_size; /* Should be 0 */ +#endif abi_ulong rwin_save; }; =20 @@ -232,6 +240,7 @@ static void restore_fpu(struct target_siginfo_fpu *fpu,= CPUSPARCState *env) #endif } =20 +#ifdef TARGET_ARCH_HAS_SETUP_FRAME void setup_frame(int sig, struct target_sigaction *ka, target_sigset_t *set, CPUSPARCState *env) { @@ -291,6 +300,7 @@ void setup_frame(int sig, struct target_sigaction *ka, } unlock_user(sf, sf_addr, sf_size); } +#endif /* TARGET_ARCH_HAS_SETUP_FRAME */ =20 void setup_rt_frame(int sig, struct target_sigaction *ka, target_siginfo_t *info, @@ -322,21 +332,28 @@ void setup_rt_frame(int sig, struct target_sigaction = *ka, tswap_sigset(&sf->mask, set); target_save_altstack(&sf->stack, env); =20 +#ifdef TARGET_ABI32 __put_user(0, &sf->extra_size); +#endif =20 /* 3. signal handler back-trampoline and parameters */ - env->regwptr[WREG_SP] =3D sf_addr; + env->regwptr[WREG_SP] =3D sf_addr - TARGET_STACK_BIAS; env->regwptr[WREG_O0] =3D sig; env->regwptr[WREG_O1] =3D sf_addr + offsetof(struct target_rt_signal_frame, info); +#ifdef TARGET_ABI32 env->regwptr[WREG_O2] =3D sf_addr + offsetof(struct target_rt_signal_frame, regs); +#else + env->regwptr[WREG_O2] =3D env->regwptr[WREG_O1]; +#endif =20 /* 4. signal handler */ env->pc =3D ka->_sa_handler; env->npc =3D env->pc + 4; =20 /* 5. return to kernel instructions */ +#ifdef TARGET_ABI32 if (ka->ka_restorer) { env->regwptr[WREG_O7] =3D ka->ka_restorer; } else { @@ -348,11 +365,16 @@ void setup_rt_frame(int sig, struct target_sigaction = *ka, /* t 0x10 */ __put_user(0x91d02010u, &sf->insns[1]); } +#else + env->regwptr[WREG_O7] =3D ka->ka_restorer; +#endif + unlock_user(sf, sf_addr, sf_size); } =20 long do_sigreturn(CPUSPARCState *env) { +#ifdef TARGET_ARCH_HAS_SETUP_FRAME abi_ulong sf_addr; struct target_signal_frame *sf =3D NULL; abi_ulong pc, npc, ptr; @@ -416,6 +438,9 @@ long do_sigreturn(CPUSPARCState *env) unlock_user_struct(sf, sf_addr, 0); force_sig(TARGET_SIGSEGV); return -TARGET_QEMU_ESIGRETURN; +#else + return -TARGET_ENOSYS; +#endif } =20 long do_rt_sigreturn(CPUSPARCState *env) diff --git a/linux-user/sparc/target_signal.h b/linux-user/sparc/target_sig= nal.h index 911a3f5af55e..34f9a1251909 100644 --- a/linux-user/sparc/target_signal.h +++ b/linux-user/sparc/target_signal.h @@ -67,7 +67,9 @@ typedef struct target_sigaltstack { #define TARGET_MINSIGSTKSZ 4096 #define TARGET_SIGSTKSZ 16384 =20 +#ifdef TARGET_ABI32 #define TARGET_ARCH_HAS_SETUP_FRAME +#endif =20 /* bit-flags */ #define TARGET_SS_AUTODISARM (1U << 31) /* disable sas during sighandling = */ --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317955; cv=none; d=zohomail.com; s=zohoarc; b=B6xHUn4Io7DQO+HzzHa/ZRY0pRRCmC0mYhsK5A44eUWZjs9Aj+sDxu9TC2A+5Jw41sNoty2HYw4AuGjJxpvCZqYCBxWjvmWVi9Da41G6z6ocm11ol7Ogq0ac3Q8EN4QP2hZO8ePuBQ4HdKP86r5joqO6gbWB9H4I69U6ZyLNcsY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317955; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VCEgtpMLXS1tTOklw90XyqjHvQAjSRfTzgH26PFWDcM=; b=UaQkfR4iRelb9rOChfI0genscYMS8S5RiuwLjPiX2CP+olGr1Zj7iwZND8Hu3+VP6XohT1YpxBItUJsiM5VBo9FNl4RtTWrUtU0mveQli/M8kdvZaqMX97toaOj1iYkISOBDyo2eRrAPXthl8i6+L3QhO2b8h1ksq7MBwpnDELU= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317955914341.26354708331485; Mon, 17 May 2021 23:05:55 -0700 (PDT) Received: from localhost ([::1]:50116 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisrb-0004Ja-5j for importer@patchew.org; Tue, 18 May 2021 02:05:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38642) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKh-0007UO-CE for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:55 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:53953) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKc-00076h-Sr for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:55 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MLRI3-1lza6R3iyZ-00ISV5; Tue, 18 May 2021 07:31:49 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 32/59] tests/tcg/sparc64: Re-enable linux-test Date: Tue, 18 May 2021 07:31:04 +0200 Message-Id: <20210518053131.87212-33-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:3olxtEH3pWqzRZ6Tb5mivIm/4g/Wwme/hu55yp1SW4lEVnu9h4r /LrbiD40lfW41DXl4gqtVlV3KyhRifYDRALrt7BmmdDLzFdLWkJ609Y82+LBTumFYVAdrQs 9/tk6gYj8c8c+Vbyo0Leu1LCmiscXCm2GscY9TtVL7xgQNZZaxZbtecP/QwmEmqlwofKaHO jvAtowWHtXR1iwB/z6zvA== X-UI-Out-Filterresults: notjunk:1;V03:K0:8FTbl/4BTac=:kt36rV2uUr/ld27gbGSUBQ Wws2PJ8M25d1AHehu0GBJjJbDSP8V4lsF7dor0v7fHTMZXTWk+6/NndTDOzUYMMEq4vvLhe63 /qBbLNecWDHNNOlyYlQbHYCdutSl31r912jFHYJgTTn1LPvh2EaiVhGW1VvTuFSdh9tV0M1Ax zWTqaBNGFoTayeerA9oRmiKVRNHQkda5GRoV9cO5yrfJCVfC3bFXYeoHHdo2W3A9pOmzok3Ew Hb20u493dJq370DDptHNze2G8t4j5kSQ3BLLhnw7jsmfI9ToQIlrV43DVS//19ZpqknT1zTmg D+P0K3ljFkP3m+6dbiHNsd/6oxNVJbZFa9UZ0dMLrwqQmMlVEWl2WZURZrNB5M27bTlhPVTF3 xLBBVE6NrpdyQs2FRVsL+mhjcrkdG2tbeo66s4UbuuQ7gcfuyXRJippG3xEEqXvqMHRcyYNbr I0KGqOl8D7cZ+YYVdDJXNHKu0ZpeqpT9FGuJcgLHcTFR48VtDWckT/mMtgSrwMpU9PjOCcQaF BcyMSKgOY0BKq6G+vjlc6o= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.135; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson It passes now that we support signals properly. Signed-off-by: Richard Henderson Message-Id: <20210426025334.1168495-26-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- tests/tcg/sparc64/Makefile.target | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tests/tcg/sparc64/Makefile.target b/tests/tcg/sparc64/Makefile= .target index 5bd7f90583d1..408dace78394 100644 --- a/tests/tcg/sparc64/Makefile.target +++ b/tests/tcg/sparc64/Makefile.target @@ -1,11 +1,6 @@ # -*- Mode: makefile -*- # -# sparc specific tweaks and masking out broken tests - -# different from the other hangs: -# tests/tcg/multiarch/linux-test.c:264: Value too large for defined data t= ype (ret=3D-1, errno=3D92/Value too large for defined data type) -run-linux-test: linux-test - $(call skip-test, $<, "BROKEN") +# sparc specific tweaks =20 # On Sparc64 Linux support 8k pages EXTRA_RUNS+=3Drun-test-mmap-8192 --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317798; cv=none; d=zohomail.com; s=zohoarc; b=g9m56ESJrAADvChFC0j6pz3dBuDgbRbA4lJmFlrQUrUQ/Gx1zbZoFH+NSBLtXD6ckZEMnNN/CyJsqcucLSVJA9dNQ0vqypmxUuQRxOekN+jEPjEu65+TcWR0ZQOxj9Y/yvqzxIkBh8zjTdb9/yPWSjJq3FWKy1LXO7itMYvJTtE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317798; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kmj7LNwo354w2ZpxcboshtdjYyuQepdDlgh7nxNI65M=; b=YX6Ablgu9ZhNLUccx+yyKQkVUTH3YE40m6QmpMR4RLkrSyLpvPsd5SY0lc8gIQQYxBH1/0NaYT0Hd3t93JiWQIG97DWVF6+e8SjFmkOgXeX3oP2PItCafgEw+GD9BTSgdrpNOkvZZoQ4csgFeNRHylAXgoP/pMfNAEcWxwDdd3o= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317798478605.0835045799087; Mon, 17 May 2021 23:03:18 -0700 (PDT) Received: from localhost ([::1]:45892 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisp3-0001JI-Ia for importer@patchew.org; Tue, 18 May 2021 02:03:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38654) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKj-0007W3-8K for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:01 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:49409) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKg-00078T-05 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:31:57 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mr8vG-1l5zQB1YHO-00oH3a; Tue, 18 May 2021 07:31:49 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 33/59] linux-user/s390x: Fix sigframe types Date: Tue, 18 May 2021 07:31:05 +0200 Message-Id: <20210518053131.87212-34-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:0urGm6ZvufG+APtXNbvTbNiQkkhr65pbK5qMHl89WrrHqBe+g7g yfImRy2dfOA//JCcqNSN2p3GAPbjXLxR3B76yjF2wvP/xlUFcST+YEFTb6cw4nSt4zfnhZS b7S7WPZ4lG6xgncMSPHKkDhbLi9KkpPrenJaryRWTP+nmVGMvU5CBHqlJL59wDHxoHnCfH/ h9YYBg5EOKJR0q8kGXRoA== X-UI-Out-Filterresults: notjunk:1;V03:K0:w2nRTAjZVEw=:1LQszoWpBCu7qMeURyj617 opyawaflF9pJtYTWfYdLz8M8LLwp2goUIZZl8GwN/S2IO9A9cVBJfP5Ogrefr24I/bPWaavRN Z/rVNJedjFWVXCgfUGU9wPqJ6XbHMWjbACbthlaaQwqPmjy0eUfRlNxvuzCDdVVkhc21BdRCg BDoUgRB5p5sAst8hs6P1D/EYsUj5tv0ku3GvBfy+qxIH+iOwwxnRIyGddh5dagS6pmJ3nIeQg ed/jhvSQ9BVjZfXQVwdLsHsxlJTAXKshUn6On5VsZ2X3ARHyMlh8/APxYp1WxlD9urzx2WHAF d3ZL8lVDIN0khIEpE3uxrCHQl62sSg/YMyunektT6jLyv44K7Q0NYy54ZNYYAzgbfqNcJnve/ uyHClEsykCwIV3CpFFYmdAgVvmyQbiOavLSgWOFSdLe92433FKgA/XCtO+2omiD5xW0Bb2lhW 8Tf1OR2ec4eIZlsx3m3hxaj81TYR/3/XQ2u2JLNk7vx/FMyKczTk7hdsJXizlPAx/M6U0b/8f MOaunv/ZbVT47fMSoEYBq4= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.131; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Noticed via gitlab clang-user job: TEST signals on s390x ../linux-user/s390x/signal.c:258:9: runtime error: \ 1.84467e+19 is outside the range of representable values of \ type 'unsigned long' Which points to the fact that we were performing a double-to-uint64_t conversion while storing the fp registers, instead of just copying the data across. Turns out there are several errors: target_ulong is the size of the target register, whereas abi_ulong is the target 'unsigned long' type. Not a big deal here, since we only support 64-bit s390x, but not correct either. In target_sigcontext and target ucontext, we used a host pointer instead of a target pointer, aka abi_ulong. Fixing this allows the removal of a cast to __put_user. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-2-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index b68b44ae7e99..707fb603d72e 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -37,13 +37,14 @@ =20 typedef struct { target_psw_t psw; - target_ulong gprs[__NUM_GPRS]; - unsigned int acrs[__NUM_ACRS]; + abi_ulong gprs[__NUM_GPRS]; + abi_uint acrs[__NUM_ACRS]; } target_s390_regs_common; =20 typedef struct { - unsigned int fpc; - double fprs[__NUM_FPRS]; + uint32_t fpc; + uint32_t pad; + uint64_t fprs[__NUM_FPRS]; } target_s390_fp_regs; =20 typedef struct { @@ -51,22 +52,22 @@ typedef struct { target_s390_fp_regs fpregs; } target_sigregs; =20 -struct target_sigcontext { - target_ulong oldmask[_SIGCONTEXT_NSIG_WORDS]; - target_sigregs *sregs; -}; +typedef struct { + abi_ulong oldmask[_SIGCONTEXT_NSIG_WORDS]; + abi_ulong sregs; +} target_sigcontext; =20 typedef struct { uint8_t callee_used_stack[__SIGNAL_FRAMESIZE]; - struct target_sigcontext sc; + target_sigcontext sc; target_sigregs sregs; int signo; uint8_t retcode[S390_SYSCALL_SIZE]; } sigframe; =20 struct target_ucontext { - target_ulong tuc_flags; - struct target_ucontext *tuc_link; + abi_ulong tuc_flags; + abi_ulong tuc_link; target_stack_t tuc_stack; target_sigregs tuc_mcontext; target_sigset_t tuc_sigmask; /* mask last for extensibility */ @@ -143,8 +144,7 @@ void setup_frame(int sig, struct target_sigaction *ka, =20 save_sigregs(env, &frame->sregs); =20 - __put_user((abi_ulong)(unsigned long)&frame->sregs, - (abi_ulong *)&frame->sc.sregs); + __put_user((abi_ulong)(unsigned long)&frame->sregs, &frame->sc.sregs); =20 /* Set up to return from userspace. If provided, use a stub already in userspace. */ --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621318204; cv=none; d=zohomail.com; s=zohoarc; b=VhCaZQ1NXuCZLcX9mWjjcprNe1uy3uU64SlC/UcbLR091GPPrxnr82Ao0pEirxfMMmkw5JGyAbzg3r3V3boVM9pZwN/dM7yk4TcjuSnNItuK90G857xYlJ1ytdqQotF6VxWzuKrzD006O4/K5iOykbEWTlMm+7OSecZfUHyn3co= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621318204; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mOFjYe8TSRqUICWmZ48l3PKrMuY06Mmde7iB6GF5KLM=; b=J22128nzGzHzMyOu8bU5yyjKDu+oeFrA9lKVKQWAZ39XFRtV2CFlrUXbxAXkh1ExN9pErh3vRNjtkaagT/ISY9kEqsc/IBhVRFul4yTKU93c0hV+U9rMXVPGxyhVIc9U6k4rA+zteHifLBbVVV0eHOAw+vgbU1kSE1EmOBrrayo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621318204018563.9897873853962; Mon, 17 May 2021 23:10:04 -0700 (PDT) Received: from localhost ([::1]:55594 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisvb-0008DU-9P for importer@patchew.org; Tue, 18 May 2021 02:10:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38720) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKo-0007cv-SK for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:02 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:45993) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKf-000787-WF for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:02 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mzi3l-1lVS5M3aDp-00vfCn; Tue, 18 May 2021 07:31:50 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 34/59] linux-user/s390x: Use uint16_t for signal retcode Date: Tue, 18 May 2021 07:31:06 +0200 Message-Id: <20210518053131.87212-35-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:R7I6qJOMJApyo8nuNXT9G6m2GVwjPTLygGlLewcgtioSlHjXbpO PuQaQlvMNe4Z0u86JGhwQpvkhHI3O581Ux5COemMxSL4DFAGzNhtqG0BqomzdhW+5urbl1v Ubg98jjqiE4hWIkn997b97d0PtUox0+7QSvQWG1LLCf8dyl9hKJTNHjcRlpNX3ifVfHCfbn 35mNll0MZQzcU+CsUYcPA== X-UI-Out-Filterresults: notjunk:1;V03:K0:Y6UJKmLfMgU=:UBTVUmf9F7TNw9TBAOZBAU fXkv0mUr7kRCo/ByBhcwXFXAnph5P5mCkYdLTcXsArNt6ruIliKxFDBTS+1of8e2bI6XPlySx yaKSOEBOw5KCOEjhlW2V1hI0q9am9xL2eSamC5i8SJHMUIRCDlyXwrY6yDa2nE72KlQT869nf 2ehW5omF/48E9QNIC2pzfslgfHJjJ9Ux6HPWkrN2lksNqEFWQvqe9AXPXaQQouoC8gpdna/ev vFGLz7RfrewKYeSUBv2qdl5bpC/DFDhpScOD9htgua5pYSoHdaivdWeqM3M9CkP5/czdgfBCI hHveg0EO0Ot42pj497B/a3SDNwLgDpuItCAfmrbrjqFng5TIrKoaIBUU5lFp+6rSpT6qApnZZ V6JKKiOrIl+DXCDF7hiIy7DKHgoTkKmhPtGa7XiCd0yr9XTBLvWbFUXtix9oDTVx4DGBuudUg W9LkPulx3DZLatTfanULrW//w+6KidAqqN3iX8gHY4OCT8iaBLcAQb3yT6m+Lneq5rqZPdLR5 a+rOrYhrEY0B9xrVZnezxo= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.187; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Using the right type simplifies the frame setup. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-3-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index 707fb603d72e..fece8ab97b3c 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -25,7 +25,6 @@ #define __NUM_FPRS 16 #define __NUM_ACRS 16 =20 -#define S390_SYSCALL_SIZE 2 #define __SIGNAL_FRAMESIZE 160 /* FIXME: 31-bit mode -> 96 */ =20 #define _SIGCONTEXT_NSIG 64 @@ -62,7 +61,7 @@ typedef struct { target_sigcontext sc; target_sigregs sregs; int signo; - uint8_t retcode[S390_SYSCALL_SIZE]; + uint16_t retcode; } sigframe; =20 struct target_ucontext { @@ -75,7 +74,7 @@ struct target_ucontext { =20 typedef struct { uint8_t callee_used_stack[__SIGNAL_FRAMESIZE]; - uint8_t retcode[S390_SYSCALL_SIZE]; + uint16_t retcode; struct target_siginfo info; struct target_ucontext uc; } rt_sigframe; @@ -155,7 +154,7 @@ void setup_frame(int sig, struct target_sigaction *ka, env->regs[14] =3D (frame_addr + offsetof(sigframe, retcode)) | PSW_ADDR_AMODE; __put_user(S390_SYSCALL_OPCODE | TARGET_NR_sigreturn, - (uint16_t *)(frame->retcode)); + &frame->retcode); } =20 /* Set up backchain. */ @@ -216,7 +215,7 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, env->regs[14] =3D (frame_addr + offsetof(typeof(*frame), retcode)) | PSW_ADDR_AMODE; __put_user(S390_SYSCALL_OPCODE | TARGET_NR_rt_sigreturn, - (uint16_t *)(frame->retcode)); + &frame->retcode); } =20 /* Set up backchain. */ --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316857; cv=none; d=zohomail.com; s=zohoarc; b=DfTWGV/a0QeZvtRLM2nYuMafbgmmWRaypv2l6h7aTU2lr7YvTGp48TCgQFjCMGU/oK1hnBVWV2acpQwT++MS4ZFtLvJIViVvtosX/uFaKHXFF6FHH4Dj2l76nWkYqeMR3j+5Ek18+DcfX68gNj1ZH52p6LuHs11d/sNXwTdyF7c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316857; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+Bv26SxF605u1xBocVZ8U5WN7bzh+ew8VkXdHFmKrLc=; b=EZqmLiLH9ps07NhPZKQibpxBIYmgu/rCx+zDMd3JACrGd57Vm/EAvZnweWqDCQ1aqpupLRrW4WhTc5NaR4+Ix/zNk8MfpnAbngztRbXUvOJI17yb34xALbMBF5iPf9ygaiVtMg3pVD6FXob9Fj8kA8nsBNhRgtz+wJXOhSitfUE= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621316857165967.604568597314; Mon, 17 May 2021 22:47:37 -0700 (PDT) Received: from localhost ([::1]:57716 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisZs-0004Vl-62 for importer@patchew.org; Tue, 18 May 2021 01:47:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38724) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKp-0007dZ-1y for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:03 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:59675) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKg-00078z-C1 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:02 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MLAAs-1lzrDY1NWk-00IBNu; Tue, 18 May 2021 07:31:50 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 35/59] linux-user/s390x: Remove PSW_ADDR_AMODE Date: Tue, 18 May 2021 07:31:07 +0200 Message-Id: <20210518053131.87212-36-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:kp4mlryV3qjT5ChB9M9n4ypqcCTW7mv72Ivd7tYnFl2Vfe63iIP WU9fWChv77VAwmeaQlv/IahWco/gnu0EfhbM6psPRI/r7N2c/toobM7XYHlID+LVhwWCecb 4lkJfhzXdIFhLjDSF5yO+gZ1wXktA/SlxSQFC58me4QNYtBQEBZK7WAL2S7zI155C868lzs gLd0c32FGPGAP7rHtrAUw== X-UI-Out-Filterresults: notjunk:1;V03:K0:ioyMpufQeHc=:N+fi7WRk9lOMnjXmAfFasI CoErEZycVZgS3qxgBvFQ08DHazg9ehUey7IN231HzhcvzViale+m5ZaKS6XmHHJzbGf/4sbUh 1bjzIXjP8AxsjxsHtbipFjzL1hPVFLkNT7oxVTTzUL+FOEDpopPQZ88HEus2+B1goYYRrMsut 9FXWHFMStwnUWsHs+ypeS8NAd5w0P5WK2UmvAgiNW6wsMEzgT2r4IHrTycwK4jXS86Fy2Kvu2 7kC0O+8/JFdb/Ieaufe3bRSsgRR1BnAJVZVhlP59DHtH4hJ7GJLFbzmH88/FzqisjbU/r6/Z3 HgRpyFpsVN9qouQDxFp9nQ8B4Xx4oaLEXDDsFmpeSIPvzortYim7L9E4gQGykX+IpakhJJX08 ghPCjC+FAmlZrChEc44VDu0uCHiYc6ShjAq5U+p/9TE0JKEyRrdGXhEsOkxwwjFtFQnwtcZdj AgAwNSPzety6/WP2NA9wT/QqJgZJJ7dYCWniBEsPQ+BrXDLcLMt6x4rWZYQ9lnZBqc4tdyjRJ 8X+KKj/7bqHqZm/pAvXEZw= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.130; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson This is an unnecessary complication since we only support 64-bit mode. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-4-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index fece8ab97b3c..1dfca71fa9b2 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -31,7 +31,6 @@ #define _SIGCONTEXT_NSIG_BPW 64 /* FIXME: 31-bit mode -> 32 */ #define _SIGCONTEXT_NSIG_WORDS (_SIGCONTEXT_NSIG / _SIGCONTEXT_NSIG_BPW) #define _SIGMASK_COPY_SIZE (sizeof(unsigned long)*_SIGCONTEXT_NSIG_WORD= S) -#define PSW_ADDR_AMODE 0x0000000000000000UL /* 0x80000000UL for= 31-bit */ #define S390_SYSCALL_OPCODE ((uint16_t)0x0a00) =20 typedef struct { @@ -148,11 +147,9 @@ void setup_frame(int sig, struct target_sigaction *ka, /* Set up to return from userspace. If provided, use a stub already in userspace. */ if (ka->sa_flags & TARGET_SA_RESTORER) { - env->regs[14] =3D (unsigned long) - ka->sa_restorer | PSW_ADDR_AMODE; + env->regs[14] =3D ka->sa_restorer; } else { - env->regs[14] =3D (frame_addr + offsetof(sigframe, retcode)) - | PSW_ADDR_AMODE; + env->regs[14] =3D frame_addr + offsetof(sigframe, retcode); __put_user(S390_SYSCALL_OPCODE | TARGET_NR_sigreturn, &frame->retcode); } @@ -162,7 +159,7 @@ void setup_frame(int sig, struct target_sigaction *ka, =20 /* Set up registers for signal handler */ env->regs[15] =3D frame_addr; - env->psw.addr =3D (target_ulong) ka->_sa_handler | PSW_ADDR_AMODE; + env->psw.addr =3D ka->_sa_handler; =20 env->regs[2] =3D sig; //map_signal(sig); env->regs[3] =3D frame_addr +=3D offsetof(typeof(*frame), sc); @@ -210,10 +207,9 @@ void setup_rt_frame(int sig, struct target_sigaction *= ka, /* Set up to return from userspace. If provided, use a stub already in userspace. */ if (ka->sa_flags & TARGET_SA_RESTORER) { - env->regs[14] =3D ka->sa_restorer | PSW_ADDR_AMODE; + env->regs[14] =3D ka->sa_restorer; } else { - env->regs[14] =3D (frame_addr + offsetof(typeof(*frame), retcode)) - | PSW_ADDR_AMODE; + env->regs[14] =3D frame_addr + offsetof(typeof(*frame), retcode); __put_user(S390_SYSCALL_OPCODE | TARGET_NR_rt_sigreturn, &frame->retcode); } @@ -223,7 +219,7 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, =20 /* Set up registers for signal handler */ env->regs[15] =3D frame_addr; - env->psw.addr =3D (target_ulong) ka->_sa_handler | PSW_ADDR_AMODE; + env->psw.addr =3D ka->_sa_handler; =20 env->regs[2] =3D sig; //map_signal(sig); env->regs[3] =3D frame_addr + offsetof(typeof(*frame), info); @@ -248,7 +244,6 @@ restore_sigregs(CPUS390XState *env, target_sigregs *sc) trace_user_s390x_restore_sigregs(env, (unsigned long long)sc->regs.psw= .addr, (unsigned long long)env->psw.addr); __get_user(env->psw.addr, &sc->regs.psw.addr); - /* FIXME: 31-bit -> | PSW_ADDR_AMODE */ =20 for (i =3D 0; i < 16; i++) { __get_user(env->aregs[i], &sc->regs.acrs[i]); --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621318373; cv=none; d=zohomail.com; s=zohoarc; b=lKfRuXRxtVp/aMS/nzaFg8TxsmAC4L23QLZEfL0qtaJjxCKJKHdG2wqTaEcTPTbZ4BuOz/yayo0IxTaB/wSwhsaP7Hnl7RHxSF8DUYozJwGaQMR6NRsBxm0TPhteBlr8bHxYqStgqxkHbXoPS45Jm4bN2EHgogiJgXQ7eY/Ysrk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621318373; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=7SMseEfn+o74hdSlaIWSGim3Y0pchzh7J+VhjHNztRg=; b=cdTuLIQ8ST82QNTlAG+iy/cO5ke/eAPaBsHYYLApcqiJEhJuAXwSiHusaLcQrwL8w/hY/+bE0mBWXKqDztlfG+FrkaJOyrqYEQXHsQsfPN0ojYFyWEdMG10wJEuh//nKsGMipSPUoPGL3OmMKn2u5AFHgpz4wOSR5phXLXI/ps0= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621318373349652.7228666052831; Mon, 17 May 2021 23:12:53 -0700 (PDT) Received: from localhost ([::1]:60128 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisyK-00030J-Ii for importer@patchew.org; Tue, 18 May 2021 02:12:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38712) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKo-0007bq-Mz for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:02 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:47409) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKi-00079A-HY for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:02 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M6lUk-1lq1TU3InG-008Nju; Tue, 18 May 2021 07:31:50 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 36/59] linux-user/s390x: Remove restore_sigregs return value Date: Tue, 18 May 2021 07:31:08 +0200 Message-Id: <20210518053131.87212-37-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:/FuOqJgIwzA4g56oyGu+1qAr/manHOuUkGjYp810JRHaj5fTiTl qq+g0F1boYvb7HbbClLTpqi6wn/GiUcMPOfvJdwGd95Q5oV/JpeXKHoQqc+Fk5PQqJgLXXH BRhvN5cDZ5D05+IIhlkJeBMdmqiCYqRF9GrmxvoLjeZvF6KeGgDUFd1dt57tYAQmilEUs4q iGr4UUbMck8kbnqcGABbw== X-UI-Out-Filterresults: notjunk:1;V03:K0:oABa5l1xAeU=:0umannad+WmoHiUJkbI9yE ddMQNInzF+Pp2e9sWKsbaxUns7sI5ahFvOXM68Rf5+mXV7WI5BFoq+jTy2rXkbt/38cZF5iE6 +GcGfblhBYF7tdXHaBrX941zPufHjBXwj/OD2eHNhStvs8DCgu51rB+2FvCdtleVAH32kQW+x GrdqUn59ZLLIkw/39A9aqVKX3Pj23TnYrqwOvVgrmOEly+viydziIFgZ+4vaI0OVrP+QSln05 1ci9LUZ2+H+U93KeqxAEXrVeqQTjR/QJj52msjeRKQpfo375pJhIxNmhxIGSGBgdqaw16Xrn0 lKHqadd3dxmvreC7T13QCgDVgXrtY1TKZz9kPTD42Ncu6sisvdOCROBcAUYID57IbgeB6Uiv0 CgySdpSRuxP1K9AVGwYzCtv1Ek5Kvk/htoYsoh884v+kzxWMeLwD+l08ytZ05xMxXW//wYiYC iipZULSoWm85T7beFd0yBl4R2LI4Sgig6B2zDW1jnvX16hY1osy4/rGBCcDSZIMes7JvpARg9 hClsCHkzB+bk+9qMeaLg5w= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.135; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson The function cannot fail. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-5-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index 1dfca71fa9b2..e455a9818dea 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -230,10 +230,8 @@ give_sigsegv: force_sigsegv(sig); } =20 -static int -restore_sigregs(CPUS390XState *env, target_sigregs *sc) +static void restore_sigregs(CPUS390XState *env, target_sigregs *sc) { - int err =3D 0; int i; =20 for (i =3D 0; i < 16; i++) { @@ -251,8 +249,6 @@ restore_sigregs(CPUS390XState *env, target_sigregs *sc) for (i =3D 0; i < 16; i++) { __get_user(*get_freg(env, i), &sc->fpregs.fprs[i]); } - - return err; } =20 long do_sigreturn(CPUS390XState *env) @@ -271,9 +267,7 @@ long do_sigreturn(CPUS390XState *env) target_to_host_sigset_internal(&set, &target_set); set_sigmask(&set); /* ~_BLOCKABLE? */ =20 - if (restore_sigregs(env, &frame->sregs)) { - goto badframe; - } + restore_sigregs(env, &frame->sregs); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; @@ -297,9 +291,7 @@ long do_rt_sigreturn(CPUS390XState *env) =20 set_sigmask(&set); /* ~_BLOCKABLE? */ =20 - if (restore_sigregs(env, &frame->uc.tuc_mcontext)) { - goto badframe; - } + restore_sigregs(env, &frame->uc.tuc_mcontext); =20 target_restore_altstack(&frame->uc.tuc_stack, env); =20 --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621318349; cv=none; d=zohomail.com; s=zohoarc; b=IPZHPWyCZ0QsZppgF5bYM0cTF2tzkTm9h8l4GkwVjdawAZynaSVAE2FztESk/BpQC6VgrtyXDBTr1Kc1pu5wP8ivGcdbHnrPcSazNiMnpXKbAwzkfEB0kkkMCBaMM46Fw/4mbQTyR5UYdqEB49sA2/lJNu/KyLJBv1HMubvyoj8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621318349; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fE6TmQjCnwYUvKRqprMae5Im/7A49/crteUSJSnovME=; b=AJKEheiRpPIcuT0moTh1rUlLVDZo8B78TMlRRzKgxXxXHnoyBbVKNsabmJazKszqmATWvWn+NB/eMI/7082bFD5upqlASXHUu9L24Mef3SFVG5rBjRxosrLfPeOy9iZRDRtzo2TRNCy2oy1Zs2Wx88mSzI7e7I8bq5/VLOVZOZs= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621318349594219.11705503855273; Mon, 17 May 2021 23:12:29 -0700 (PDT) Received: from localhost ([::1]:58642 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisxw-0001y6-Jf for importer@patchew.org; Tue, 18 May 2021 02:12:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38760) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKq-0007hy-B4 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:04 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:44103) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKj-00079u-0i for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:04 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MGzI3-1ldfXw1Frf-00E6tT; Tue, 18 May 2021 07:31:51 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 37/59] linux-user/s390x: Fix trace in restore_regs Date: Tue, 18 May 2021 07:31:09 +0200 Message-Id: <20210518053131.87212-38-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:SgDryPu0UzDHpaSBa66ic8SRL9CsUkvHpgYIGBFBHels/EpfyxC BaBkkW4M9S4+b24E/dkBV2lxxIr5IyAbxPep0BLrZt4K0N3GZSZJ2iM+i0ZIToMy5QTU91Q 5qZj1KZ7DuZYtLC6kwAaWgZXCuzKW9MD/01NdUEP9Pr1izVEIJjnnuikpa96irfPGYRMvve rwQ18wuD6qVi4113Q/c2Q== X-UI-Out-Filterresults: notjunk:1;V03:K0:CEwRVVLYIMg=:g8cTkuPw1f8UQLf2pazmit ZBTzw/5wTWDB1e2cpB+ByiHg74IOK/ZzIrbbeYb0LQfMQo11dkSM2HFO4uo0pPcCxNu65lMZH QHkmQApP0vAkeI0xDjux0txNQbZffWPjiNMx5RXspGf5J+FV6UPBCS9FilhuV4AE4Ymj0XRF5 9PQ1RZC7iYAeKDkQzvu/DXtzMG/bLMdT+YsASHRQVxcIP2hj3i8sGdNJ4cLocgEyhbMKxRnsX 6dtGb5gdsx8UlTR6V3I3iaFekVKAuy6ZYj/eOV1bXs+QbEyIw1+yM70Pir2/bWVEO7cpc/5p8 7NZCNfluSDeAxICHfoNXfAjjYvX9gatn3WebHq9kdOF6ToaeIh845FFR4cYv0VsYGpZAC1ubF K96j7tjUUeQVuUZ3RXB47n9pb4Xi0GlhPH+GjJlHmdE/7nno3MHiYhobllw1ny0lvJ1FvbGu9 XRbeSfuvxnfVgxGtytTWrZ9J1PuOMb0HLB6O5FD2vDVb+6lUfvfosniWKx+GCB2edN07NuzoP ia79rjkF/ZPdXtrI176pVo= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.135; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Directly reading sc->regs.psw.addr misses the bswap that may be performed by __get_user. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-6-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index e455a9818dea..dcc6f7bc0274 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -232,16 +232,17 @@ give_sigsegv: =20 static void restore_sigregs(CPUS390XState *env, target_sigregs *sc) { + target_ulong prev_addr; int i; =20 for (i =3D 0; i < 16; i++) { __get_user(env->regs[i], &sc->regs.gprs[i]); } =20 + prev_addr =3D env->psw.addr; __get_user(env->psw.mask, &sc->regs.psw.mask); - trace_user_s390x_restore_sigregs(env, (unsigned long long)sc->regs.psw= .addr, - (unsigned long long)env->psw.addr); __get_user(env->psw.addr, &sc->regs.psw.addr); + trace_user_s390x_restore_sigregs(env, env->psw.addr, prev_addr); =20 for (i =3D 0; i < 16; i++) { __get_user(env->aregs[i], &sc->regs.acrs[i]); --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621318145; cv=none; d=zohomail.com; s=zohoarc; b=O3QXSytOkEUOVIscT3ODsKsn39lvzzrV2UZPiMKpANn4Agqv6anl3WRW307u/XJaDxTddORK8HNdDo24nkWMyUK0x2nX1Wo49CEoojDqHY2lh6Qor5Awr0MFOHuMhFzlTk6k9sQOQTFe8Z63teLMU5LHhJ9u/vig7+DbuqwS/oM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621318145; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KwT2AKgZHezFIvCf5CFVAJxflDRN58W0gf8ZoImqk/s=; b=eNNaF7j8X3DdAar2USG/69Ag48HQt5asHcLEtaD/KdAWyRkdUOnvIdI0mzAOuu26hThD5N1E8VHOAjYpR7lp+XbvX2GtRPQKi9pZyRjX83MC/tOSKYfyDtpVExcH8bdBj6WT2bSxEAYJKcG7VBK/Oee7zDqvydmesKbGvPW3IGg= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621318145674824.5495868661965; Mon, 17 May 2021 23:09:05 -0700 (PDT) Received: from localhost ([::1]:54334 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisue-0007LD-HA for importer@patchew.org; Tue, 18 May 2021 02:09:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38732) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKp-0007eO-9u for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:03 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:42991) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKj-00079s-18 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:02 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N4eOd-1lIrRH3X1z-011mCv; Tue, 18 May 2021 07:31:53 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 38/59] linux-user/s390x: Fix sigcontext sregs value Date: Tue, 18 May 2021 07:31:10 +0200 Message-Id: <20210518053131.87212-39-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:K2cnqivSXpqMREgWAmXvvGKJ5rlVPDroJhh3o7GNj8qZM7Vq7Ga Em7WhoLtChjTUXQ9T/CeR/7jgNJcdfkzfXmrWp1KbNWWzLFr3DoNj+FRlqMjvS2uj/BsH5E Vy12KqojlJkdsXTUGcjpzGdu5GNZYECwYcqwZvKqUPifx27ICjqBcyxecdasSNnK5uz4HQP z+B1Ei5HfISb15hlb4ATg== X-UI-Out-Filterresults: notjunk:1;V03:K0:+s3L3Ny9Xxo=:b4r0zBPkUl5vHVVdUZC7td WDB+Nsip9FQusy+Nev3oZ3xgyRRaoLh3L3Xl413Au1pDt610vZPFLXNgJW1c7pvm97Q4oRWZp 07/ZG31wIW1CDVPC2p3GTYX4rfttZaZs0JZW1ZOWXvrfpPhNGt7HXAzfg/ICfEDmSOcTvNrVX c72q6V5BlnJ/0j7zK1TR5lgU3mzqdklr5EiE248SA2X8DUECHn08NBzIsn4GLVAcfPPZ8ZkJs S0epN/gzIFWyMC6/SwnDcJLKnNDDNo8PffWbznuvQilUgKSeDOZ2YT/ftJbjz9+GLJnoI7Vgt JNKNKy9t4+eBctrtYEBFRxYzfL867kqGDJffeEjDSSDjnVNH29mw45J6ktqQuSqxm2rf7QQwl tRApTv/z+IMkMZDA0XAD0x2b0HEfvKQRSmeyOxOhjimmOB2byxEiI0wP3ZcdznM+dXfytQDUD E4xsCl5+FXKgcfQ25YUcXMqbYXgK4PdYJNU5T9czgoOrzwEWml889NyrMxwgwNmfjah4rvDJl 0c7L+/IaMSLvlbXsbXm0uc= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.131; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Using the host address of &frame->sregs is incorrect. We need the guest address. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-7-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index dcc6f7bc0274..f8515dd3329b 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -142,7 +142,7 @@ void setup_frame(int sig, struct target_sigaction *ka, =20 save_sigregs(env, &frame->sregs); =20 - __put_user((abi_ulong)(unsigned long)&frame->sregs, &frame->sc.sregs); + __put_user(frame_addr + offsetof(sigframe, sregs), &frame->sc.sregs); =20 /* Set up to return from userspace. If provided, use a stub already in userspace. */ --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621318563; cv=none; d=zohomail.com; s=zohoarc; b=G2O5vhT9NTd+X40bUTP0ZsWqCu8gEcjtPWZjKDSztFxNg52kTS1v6tmJQXygks3m75CzD0UgYgYrFKPxzT+E2ardDbz+feWnrwj6PJ7tWKmAQ73UWxDt7Q9nR81r9fnJ23OZHGFFKTVGABWRcTg9VyeAID96pThzQrDzs0TWJws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621318563; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1XDkHvh/cCuWadzIi6xVKJJPPCiYB2bHW85iDtvupT4=; b=CpIcYat9Dvp9btGSzPGrEpiPY0TCJNu4lFnM3emaAVrAiUgbxH4Ubtw7Ps11Q7Pn3hHz1dzoHFVf8Fdflci6AvnCk88jzww6hiTc7yb+TiFkUudaaJH6f/K/8Se0N0nArf1v/LhA2S9qWn2RGzfPySluYz+5fVR/t/c/GxVlQwY= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621318563781432.2567685200023; Mon, 17 May 2021 23:16:03 -0700 (PDT) Received: from localhost ([::1]:36480 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lit1O-00067K-UK for importer@patchew.org; Tue, 18 May 2021 02:16:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38784) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKr-0007lq-9s for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:05 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:46687) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007A0-1E for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:05 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MFsAJ-1lgyvu1Kf9-00HNgn; Tue, 18 May 2021 07:31:53 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 39/59] linux-user/s390x: Use tswap_sigset in setup_rt_frame Date: Tue, 18 May 2021 07:31:11 +0200 Message-Id: <20210518053131.87212-40-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:zpPewPl+HBqydJb4GvfK6LiPAO4n5oGHGO1VTIeuRreQfx2m6ez ILg8fhUrHNhobN2itW5TC3euW0f19tKet4s7R5ZkNg6hLuGtCTHqwSQh0PP37rO4PvLCuYQ rEVr6jlqiHn4igMF7OrAyluoH8ot5mi9ZIhZ7C+RBCNNOrkHxFhKbWcXYtmE7Q65gfsBFHc c7CgED8RQqZFzC2IbADCQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:r8mDENy0fIM=:gHse5YwmJcatcmGwmlJYRm hXBbOENqlHeKorRgZCDDyrlpn4AcIdSTus8vokhLSMy2HME130UAShNFY1iAVOxQ2Lk5IGJkN khJytdrpTCutX34kPZnBKIZRm2+D+KphhOhePnuce87mXlsix4DkKqAuOWejWo6GH0Yo2YQMo KeruxfR4iLpWhLrgtzfW7r6OefMQhAeivf9Q5s4gu6oAVAFQHOXKgDHMuHcxZAWbKzdm/ewT2 90YpMSmsvCB+NmFE29XTjNlfmbRttD8UnMQ8IzKgJt4qVOMR21is8ddC0H7Of/IY2evSN2cED MQ/CPVAWkN2foyaL5TU9txOAUHIJlErv56YD6+E0RR5rbz5lnl01sO5/c+ZpOFZrgt5CX4FIu EbIfKYPQbThvnU+Kr9qgcFxwTCvK+6vUE5g3j++Sd6PlaxN4OllSgYYa5eomJQIl8GAzCxrqn 0ZgcBbdodW7AnZxTKqdwVN7OJxrL3bgUtcjR+OFoR+ZAbu6FqHBhIdnTbdIIw4tWhv1r9jCA1 zJObgi+GR53GZTG4yDZbo0= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.187; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-8-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index f8515dd3329b..4dde55d4d518 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -182,7 +182,6 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, target_siginfo_t *info, target_sigset_t *set, CPUS390XState *env) { - int i; rt_sigframe *frame; abi_ulong frame_addr; =20 @@ -199,10 +198,7 @@ void setup_rt_frame(int sig, struct target_sigaction *= ka, __put_user((abi_ulong)0, (abi_ulong *)&frame->uc.tuc_link); target_save_altstack(&frame->uc.tuc_stack, env); save_sigregs(env, &frame->uc.tuc_mcontext); - for (i =3D 0; i < TARGET_NSIG_WORDS; i++) { - __put_user((abi_ulong)set->sig[i], - (abi_ulong *)&frame->uc.tuc_sigmask.sig[i]); - } + tswap_sigset(&frame->uc.tuc_sigmask, set); =20 /* Set up to return from userspace. If provided, use a stub already in userspace. */ --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317336; cv=none; d=zohomail.com; s=zohoarc; b=NF3yZBzEsZYET7vpyHt8zLniKEGSA9DkrTT28g9gN8DdEzR5ktRYv3WhWlTfxr/e9VIVYFe6KgWJ7RemZBIwo1sHwJ0IJW5wSNLMtC2Q6M8bsMhyUcUV1IIqHENbo5PWAqZAFF+uynnoBKr+3+MY+wv/C6+9kr3hU4zUbVBR98k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317336; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=GGt3s9PH54kVNpLEGyCmqOOnWNqSPdUuVvGJzLZhWRc=; b=i0Bjy7EOqRf+l8saIG0iCPi/Iby0jfZqU0cpvJatHFMvy5vwyk/wH4oZ2OV2/Mr1Ba6ldDxevBi1DbQXLHy6XF1u3kLYcsY7Q8yiRmi/mcdL59bebJz7c1HZfAzX4owVTjOvEaJrBO3V0zEvWiUP9agSHtNc/KkNnbxwJJZCXEI= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 162131733678368.72648454934495; Mon, 17 May 2021 22:55:36 -0700 (PDT) Received: from localhost ([::1]:49496 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lishb-0001Ef-Oc for importer@patchew.org; Tue, 18 May 2021 01:55:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38818) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKt-0007te-41 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:07 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:46027) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007A5-2K for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:06 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M8k65-1lmywC3MeX-004hR9; Tue, 18 May 2021 07:31:54 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 40/59] linux-user/s390x: Tidy save_sigregs Date: Tue, 18 May 2021 07:31:12 +0200 Message-Id: <20210518053131.87212-41-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:mtO72gX66+0XimLplwT1W5/HE7jjUbsxrl2E8lKI+YqVTh9Iw2L 0zeaLDkqt/YPI3tGPveWtpr3gLQWVv++u5B83ONdmvqmcma7tRIjGdu5NCnMulppFhIvyqC HDiiLkKFfksJeVCim+EI3AkKuznIsGgv5kwfrfHtZIA2PLywquZqZyGXmtr1qW+Mhke/MTw tAza5L72ZVruRFFXBgfCw== X-UI-Out-Filterresults: notjunk:1;V03:K0:tLfhggQq0AA=:2DNGyYFhsgwjzU4J+4LPDN ICT3ugzzQGxMXk9ClDLH664trttQo42kUzlhjuVuRqkBqvxcJRJbnvVVKFJiKRH0ENw5cr4Sa AZBWzYe5WRH93Iqz+HKS70orC3h7VMdc8ZQgdFopm60AkxQIzcavfzMg7cMoF9f5euz9Y2m9p CseafcVscyOZD/hwb6c0Zo7i3TNBWeX8vwRfOn91qBTNoPnAVuzKur1llbP+FJcGgfZJbMYT+ 5FFOZ+utMJA5zuOz8Ku2ILkiUZuW/R1MeQ4WWjcCX56CxqnT4d21CpTcijfF5J7uziymPmbm3 HH+NnrekXOww4NEq63q1ciKJsqLcCkKdj22V7mHikECwWUgBfAep0S0tGOoCvKcN1XBKyNxsR gwkFSGWvyojz3UzWjOuNP3Ko5bWsnCl2NMVnVmvb21ZJbivQbmZgbgfjXbYxNmrddoYj0e8nD l+AzSQtzyxKyWLpXRILUsQustsUTi5fBU7SBZyr0sm96aXdvq5WmjmVAuzAeNpgpMpw6pODTw mA39RDIq8uCkyPfwv7k8Ac= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.133; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson The "save" routines copied from the kernel, which are currently commented out, are unnecessary in qemu. We can copy from env where the kernel needs special instructions. Fix comment style. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-9-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index 4dde55d4d518..eabfe4293f9f 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -104,23 +104,25 @@ get_sigframe(struct target_sigaction *ka, CPUS390XSta= te *env, size_t frame_size) static void save_sigregs(CPUS390XState *env, target_sigregs *sregs) { int i; - //save_access_regs(current->thread.acrs); FIXME =20 - /* Copy a 'clean' PSW mask to the user to avoid leaking - information about whether PER is currently on. */ + /* + * Copy a 'clean' PSW mask to the user to avoid leaking + * information about whether PER is currently on. + */ __put_user(env->psw.mask, &sregs->regs.psw.mask); __put_user(env->psw.addr, &sregs->regs.psw.addr); + for (i =3D 0; i < 16; i++) { __put_user(env->regs[i], &sregs->regs.gprs[i]); } for (i =3D 0; i < 16; i++) { __put_user(env->aregs[i], &sregs->regs.acrs[i]); } + /* * We have to store the fp registers to current->thread.fp_regs * to merge them with the emulated registers. */ - //save_fp_regs(¤t->thread.fp_regs); FIXME for (i =3D 0; i < 16; i++) { __put_user(*get_freg(env, i), &sregs->fpregs.fprs[i]); } --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317502; cv=none; d=zohomail.com; s=zohoarc; b=Hdu/9iVEJt0lePms2SzNZMI1iyTEiW9M5jkTIliZvBZk2WCDlzx5+i5pGC2riK5mg50dGjhzkJsL3iprmLk4dXCkELhFXoaMiYTt2ByFUy555vInsWHry6Y+8sA7Ep1jbKF7vqDWw2kBGNMGtakCmUrJ3+N9O8yzP4N+W45+yxs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317502; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=WSaVOElFw7wdMDxEUPmsbL/HL4lxW5U/yC9txMPWVcc=; b=CqR95i0e4xp27k4Ti1ySLJz8xkBnHcoPx2f5sVT3ONVS9VMQO+EdrMD6/qD6AePA1tdIDqHm5u463MdbjP7mKtld8X2nRThlTqxn96Chcng++ptELAfAbsSGVy5WxKjJ9xmclW4kaoGpq5/FUlHVurf4y++5Saq3PHEULaxC+/A= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317502660399.60185043362924; Mon, 17 May 2021 22:58:22 -0700 (PDT) Received: from localhost ([::1]:57896 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liskH-0006xU-J0 for importer@patchew.org; Tue, 18 May 2021 01:58:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38838) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKt-0007vm-HF for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:07 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:47293) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007AD-2r for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:07 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MyNoa-1lZ2aU1DNU-00yizy; Tue, 18 May 2021 07:31:54 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 41/59] linux-user/s390x: Clean up single-use gotos in signal.c Date: Tue, 18 May 2021 07:31:13 +0200 Message-Id: <20210518053131.87212-42-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:C3gE75Od+oBlcgxFppGkxt2dL7Z0AMF9LS8MklpEC8D1PK1mJi1 l/+rhdctnjhg0S4oqNasxvO2NpbEgDaTvAheXU59umjBxpOGjSekvCPelFQ2btGehBsrDu2 jMjbbglauUeyzJSsuoiGIaJwBdI3DQAc1iBks1HyCAGAUi8vr8hxBNkBFw0BLmkR2R4olGW eATN/A/XJe0nwp4fLsoxA== X-UI-Out-Filterresults: notjunk:1;V03:K0:ONp4jwaAAuc=:IzeJRHYI2l0As8CnS6qxGI KGH5XRSdPYFe67z3ArhYjhEfmziSIJWqQiJ+AqTSXK1raR4tyYWRkyBuSHeyZHSwCrCmnsq0C KY2sO2UpSI76UqO8QlzFVDcb7L1xtFEdXL8msK75fUmVGyM5/XvJpsH3hIjWHlkViZUbk8ukd JJc4UWGpSzHu3Hbt7PIrnlDBGe3DcJJYc6bXQGIbD9NttVuklo2UMTgr2Dq5IK3SIRUaXegj4 dZb3cETXY2UXyvC74pTQRAaq+ViV/IM/7Ms/iWhjkAr59uqIYT3dZzU1xL5ZZmLn4utUN8BIZ i5dg9Glc1ePNnFwhRPepBQzqBhyRw01hLacqWUVnNR1gbyc9QsL5HEUmtGqdknW4EeI88e62t PhGrjJrYrQo0T/lCPxNoBQ3J5ckF59UHqQAJVEMrtsH72+xjFmPkwMdphCVCcNHG00+i3F7GV GDrQlh0EjI4BlgcZ1ube/t2OtQTnWHItObyHt4+zGxEqNymeGiTecLHt+w3fJEFCY8vr/JwJM oKrAAgMkhlf2UxdwnsShMM= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.187; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-10-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index eabfe4293f9f..64a9eab09770 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -137,7 +137,8 @@ void setup_frame(int sig, struct target_sigaction *ka, frame_addr =3D get_sigframe(ka, env, sizeof(*frame)); trace_user_setup_frame(env, frame_addr); if (!lock_user_struct(VERIFY_WRITE, frame, frame_addr, 0)) { - goto give_sigsegv; + force_sigsegv(sig); + return; } =20 __put_user(set->sig[0], &frame->sc.oldmask[0]); @@ -174,10 +175,6 @@ void setup_frame(int sig, struct target_sigaction *ka, /* Place signal number on stack to allow backtrace from handler. */ __put_user(env->regs[2], &frame->signo); unlock_user_struct(frame, frame_addr, 1); - return; - -give_sigsegv: - force_sigsegv(sig); } =20 void setup_rt_frame(int sig, struct target_sigaction *ka, @@ -190,7 +187,8 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, frame_addr =3D get_sigframe(ka, env, sizeof *frame); trace_user_setup_rt_frame(env, frame_addr); if (!lock_user_struct(VERIFY_WRITE, frame, frame_addr, 0)) { - goto give_sigsegv; + force_sigsegv(sig); + return; } =20 tswap_siginfo(&frame->info, info); @@ -222,10 +220,6 @@ void setup_rt_frame(int sig, struct target_sigaction *= ka, env->regs[2] =3D sig; //map_signal(sig); env->regs[3] =3D frame_addr + offsetof(typeof(*frame), info); env->regs[4] =3D frame_addr + offsetof(typeof(*frame), uc); - return; - -give_sigsegv: - force_sigsegv(sig); } =20 static void restore_sigregs(CPUS390XState *env, target_sigregs *sc) @@ -259,7 +253,8 @@ long do_sigreturn(CPUS390XState *env) =20 trace_user_do_sigreturn(env, frame_addr); if (!lock_user_struct(VERIFY_READ, frame, frame_addr, 1)) { - goto badframe; + force_sig(TARGET_SIGSEGV); + return -TARGET_QEMU_ESIGRETURN; } __get_user(target_set.sig[0], &frame->sc.oldmask[0]); =20 @@ -270,10 +265,6 @@ long do_sigreturn(CPUS390XState *env) =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; - -badframe: - force_sig(TARGET_SIGSEGV); - return -TARGET_QEMU_ESIGRETURN; } =20 long do_rt_sigreturn(CPUS390XState *env) @@ -284,7 +275,8 @@ long do_rt_sigreturn(CPUS390XState *env) =20 trace_user_do_rt_sigreturn(env, frame_addr); if (!lock_user_struct(VERIFY_READ, frame, frame_addr, 1)) { - goto badframe; + force_sig(TARGET_SIGSEGV); + return -TARGET_QEMU_ESIGRETURN; } target_to_host_sigset(&set, &frame->uc.tuc_sigmask); =20 @@ -296,9 +288,4 @@ long do_rt_sigreturn(CPUS390XState *env) =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; - -badframe: - unlock_user_struct(frame, frame_addr, 0); - force_sig(TARGET_SIGSEGV); - return -TARGET_QEMU_ESIGRETURN; } --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621318524; cv=none; d=zohomail.com; s=zohoarc; b=aAsBMBkaqLWnq3QPTwMi3NXz4nwN/bZJ282VsvzdPmu8OJ4mROM944M0v/Vmc8uwNRt2gkMqjO96B13jf9FWcECYNLkXDuqihfUEVvNFXsGLXNe5zvLIX03tTyZdDP3dmXAHv/kwK9++rRgdTrGPKAIktTa69jKLNIk9NSbYHcU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621318524; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Vo6Dl1Qp9eZdyZcBtl1QOozIJdh7pRc5aLtRTUKEkQ0=; b=X/vhsgp9D+IiHW46hhTts/Fsjtaepavj05BjZkff+kQoF3ZIlnCUI1UEooWk+gldwmkhYfwkMi6uLNSTohAvSS65/Mjtkvg6V6rfbvnJr+eqzcJ8z4MccFPTn4dCR4nFzNb7w9ttkHT1DE0ZEKaOg1rRcLzWaJ5STdo6xwD/Vzc= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621318524714107.77024613916103; Mon, 17 May 2021 23:15:24 -0700 (PDT) Received: from localhost ([::1]:35172 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lit0l-0005Dx-Gf for importer@patchew.org; Tue, 18 May 2021 02:15:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38788) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKr-0007n3-KK for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:05 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:50985) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007AO-2f for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:05 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MS1G7-1lt1bF3Cgd-00TWmj; Tue, 18 May 2021 07:31:54 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 42/59] linux-user/s390x: Set psw.mask properly for the signal handler Date: Tue, 18 May 2021 07:31:14 +0200 Message-Id: <20210518053131.87212-43-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:qa/fa58/7CVeW+epwnsmG7QifkNJtcfhsspWlN1R1wbYIPDIs+a Qs7EOKsmJoryGsQW/MZoDA7usZ6cCnQTcXCIfPZ0D3tktQvOQ8FjmZdKndR9vff9WvOyJ7S L6krUKM00TGuc60ZCnqEibQjQ2gUCHq7/ajjVYI0FMbfkwiVCO7ZuOtDqMhrFll2D9M1nEB IcCK5p5FezP3q6Gbph91g== X-UI-Out-Filterresults: notjunk:1;V03:K0:FZGATEnyljY=:GUkpQOmk1lODYOzcGh/+Tn SjVMLUHVTdk/ZCDhuGyz2J+F9KBfEUXKfV5Dkps+6HQxTGZfTCxjkuAI0pw4NHRA1ZUC0X6GU xs85xbI3m+9OqnvhzpfCDAHfCkwy/iaKZFhqsFxScMGyKOu1mrLdkFsMFhVLyOxErOW/zL8D4 Omsv0zglZXDF0U5jcA4d2afsSdAVwg5WsDOZhDfx9VHX4Tqj4WLOvKBuJ4EPuWJRHebkDk0HH CGI4/WpmtI+oiUS2QP40f8YBkfrEkBVFWRij09f808c/1PZYsOxl0IsbYbh8yrL+uf7b8Cyed X9QzYsGGgjfw6vVavJ8WPuIraYi7Sxo1/f5VZN6blRo/5si8cQVa6s++29ss2ndwNXDUusFmT Z7BrAeq3Dr9AyDN4emi7rc0RiRT4VaBvbQE8onT1NmpgcR4MrRHRaRp2+o67N2H0DzPlkEl2h vOM5zU12hP4aMN3K57OqSfPBDTSxXKmokmRG++xTYiPyMZOCGugzTbcDeu9WBH1rR1AO8NZq0 WWWk29Vg2zbnsFivkhiY9M= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.130; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Note that PSW_ADDR_{64,32} are called PSW_MASK_{EA,BA} in the kernel source. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-11-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index 64a9eab09770..17f617c65581 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -162,6 +162,9 @@ void setup_frame(int sig, struct target_sigaction *ka, =20 /* Set up registers for signal handler */ env->regs[15] =3D frame_addr; + /* Force default amode and default user address space control. */ + env->psw.mask =3D PSW_MASK_64 | PSW_MASK_32 | PSW_ASC_PRIMARY + | (env->psw.mask & ~PSW_MASK_ASC); env->psw.addr =3D ka->_sa_handler; =20 env->regs[2] =3D sig; //map_signal(sig); @@ -215,6 +218,9 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, =20 /* Set up registers for signal handler */ env->regs[15] =3D frame_addr; + /* Force default amode and default user address space control. */ + env->psw.mask =3D PSW_MASK_64 | PSW_MASK_32 | PSW_ASC_PRIMARY + | (env->psw.mask & ~PSW_MASK_ASC); env->psw.addr =3D ka->_sa_handler; =20 env->regs[2] =3D sig; //map_signal(sig); --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621318843; cv=none; d=zohomail.com; s=zohoarc; b=Je9Y1ptRoyuKvdzR9eKEpSefwWqWVuM5xAJ8TI+TRG4ChmyfxTbz2yi9hqQGoxMd+YrEL7PS66m+Z4nw6JmhLtP4XHS2JsMxNJPNgGRpp0s2yCegINDFjFjhHpxuoDS01ZGWJ08VtjqFa3Q3tDLF3pWDrU8GofCMk5E4fv6rPEQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621318843; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XkPQmmEwCuu5xUszhkBehQaiYB97BAH08iNylEntFhg=; b=LGceua6iY5oZ2uX9I38xUgR1JsP9m5J6dnnHqE7P+r/ldf72ICEdH5clRj3J8AqYSyi5SKZMGn/InHxAbHaBjKg3mdKBnH1RJyL3qLDSUKNUvj25znn9/ynspzfAHqDqxWS4SeF1lhdaYr1IuItwly0f3LtnAiB5vWqT1T6IDiE= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621318843917439.0285629431298; Mon, 17 May 2021 23:20:43 -0700 (PDT) Received: from localhost ([::1]:45304 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lit5u-0003jP-UZ for importer@patchew.org; Tue, 18 May 2021 02:20:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38920) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKw-000877-Oj for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:10 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:51025) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007AR-3U for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:10 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mxpqo-1lYUcf1HJ8-00zHEG; Tue, 18 May 2021 07:31:55 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 43/59] linux-user/s390x: Add stub sigframe argument for last_break Date: Tue, 18 May 2021 07:31:15 +0200 Message-Id: <20210518053131.87212-44-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:B8zeYb7QC5D25AedDnZGj3hnzb78tZEt7lAbrOmCnRPEQSK9stM emmiELAKRCIuyVoBtVEzmc65Jj52ja+a+ghh6CON2agri1UwS0FQa3UTykWE9fjZtXYd83h q0btGR5FYNHnIv6rwlGBtYriq/9uNqgH33B9elLL9R7pJpW6PwFq10yTM3YOjbQZmcVdkLK 2vqJ2XYYjTAqsXVwQE1hw== X-UI-Out-Filterresults: notjunk:1;V03:K0:5/s0C1ENJAA=:7Dx1dVOPKk/tYKzABMX/ii Qr1Xxe0FYTKpjY6iEoRm9oBHtgilSuAAFoNBtWis1MxFme5Kd7l46yM9hIhHSev67kT7rvE9V r3BXZVF6Jhc2ssG6Smg1YeKxRe49KbtsYTmlRXsVYr2gYoPdKfLYJbo06/wYvOJk3zyAQ0zZa zZ38+f7FkJrCE+ZWopLruNtuKU90RmmuIaeo7ep/F3MiQMav95Mn/kL9Vlk55kwSjKsZ/J6O7 xIrJW1e9X/Mki9HZBAyW8Yq+4rf/aNlc4UwihaWILW9/RRLigK0AdR89SUzeesTtS3PVlZkXJ Idjd2QlEU7bfZjqY8bEiR5d93iqSVYkhK7hbmz/s460VCqz6RgCYHId1uf+7Q4nWfeWSRnW7Z tkJmFhmEBD3BSGxMX36RQbvGCNPWHhS5M/Ooo07yGyLH3dYlar1lqwGjRnuO3blf8gatBWF1b hF9LlkRPUbTGa7/2dXD2dhy7dC7qPXJZjqyO+KzLBelCkb3zzu4N3xH8dhvpNqzRw6rJYLAoi f7bJ3qmYQLNoBZTjqTodJc= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.133; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson In order to properly present these arguments, we need to add code to target/s390x to record LowCore parameters for user-only. But in the meantime, at least zero the missing last_break argument, and fixup the comment style in the vicinity. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-12-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index 17f617c65581..bc41b01c5deb 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -167,13 +167,16 @@ void setup_frame(int sig, struct target_sigaction *ka, | (env->psw.mask & ~PSW_MASK_ASC); env->psw.addr =3D ka->_sa_handler; =20 - env->regs[2] =3D sig; //map_signal(sig); + env->regs[2] =3D sig; env->regs[3] =3D frame_addr +=3D offsetof(typeof(*frame), sc); =20 - /* We forgot to include these in the sigcontext. - To avoid breaking binary compatibility, they are passed as args. */ - env->regs[4] =3D 0; // FIXME: no clue... current->thread.trap_no; - env->regs[5] =3D 0; // FIXME: no clue... current->thread.prot_addr; + /* + * We forgot to include these in the sigcontext. + * To avoid breaking binary compatibility, they are passed as args. + */ + env->regs[4] =3D 0; /* FIXME: regs->int_code & 127 */ + env->regs[5] =3D 0; /* FIXME: regs->int_parm_long */ + env->regs[6] =3D 0; /* FIXME: current->thread.last_break */ =20 /* Place signal number on stack to allow backtrace from handler. */ __put_user(env->regs[2], &frame->signo); @@ -223,9 +226,10 @@ void setup_rt_frame(int sig, struct target_sigaction *= ka, | (env->psw.mask & ~PSW_MASK_ASC); env->psw.addr =3D ka->_sa_handler; =20 - env->regs[2] =3D sig; //map_signal(sig); + env->regs[2] =3D sig; env->regs[3] =3D frame_addr + offsetof(typeof(*frame), info); env->regs[4] =3D frame_addr + offsetof(typeof(*frame), uc); + env->regs[5] =3D 0; /* FIXME: current->thread.last_break */ } =20 static void restore_sigregs(CPUS390XState *env, target_sigregs *sc) --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621318688; cv=none; d=zohomail.com; s=zohoarc; b=Z9b4NT3YNmp8SO9TKyjuA2vRX2Y9yTSaGdyv5XCjvvQQbPt4xSBcqfAJAZG8pEMaAzriiIP1usEbXDDQLdmdN/1P7dRTjayqh5GGeMjF70glQWkpUQPnfuOGu1NsVtWvgaXn+BCn8LK3vNKUpFcUSMnHFN6I2TYY4kIQ4zRvrJ0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621318688; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MKaTiylhNCjUv3zVUeGHxIwA0dfSM8mAfQL0F9dhnhA=; b=cKp7xWaeSW90L05K5HjapLMVxWSGXNM84jexpfH0AAtrVLMAvL//8LuIkcL+hFGNTyoI98WxMyqSaBqk6IIJfv592i2FHurz+wnXucW+6Zhl38dJvT6g3tK3Awxjo+GtBK71EY0uSIGwgqa1QQeEZRXGXUb0iZ21QSc/wLc3+1Y= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621318688019838.8904471449622; Mon, 17 May 2021 23:18:08 -0700 (PDT) Received: from localhost ([::1]:40912 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lit3O-0000l3-P9 for importer@patchew.org; Tue, 18 May 2021 02:18:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38814) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKs-0007rv-O9 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:06 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:35477) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007AW-3C for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:06 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N4eOd-1lIrRE3dxP-011mCv; Tue, 18 May 2021 07:31:56 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 44/59] linux-user/s390x: Fix frame_addr corruption in setup_frame Date: Tue, 18 May 2021 07:31:16 +0200 Message-Id: <20210518053131.87212-45-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:SZ7kuAOZ0C6B91UsjZ4NYREWa4kcI9+Qh+fUMvnTFnFh1Qgvhfh LRJpoFdflRaNVwO22o50ZCKPgDLrjlkYGYgU8KlQDTboqYVNaRKBnz+ecwY5Sryu5dFxxrx ruUKXmGnMDXtT3xPDtj44lz4QjABz/xfIP+9FkH6/meSWGBvnn3jsWmBSLsJ3Pph2R1RudY iHFT4ypIXxmtmHpVJoBRA== X-UI-Out-Filterresults: notjunk:1;V03:K0:EgUM2E7ZBaQ=:CbPm2d6+KlnQOnQXdK/XnT /BxNIlpkYwLP5kYRAhFBq+tmIl8ayigwgeakoF6bKJAJWq2rPWbRfj98pMXxr5ngY+2iSx6IS ljcKzNde2UhSCLdPLkoqsO2rZPbonbxpBw1zV7CqTaSa3nPatU4I3TsYlkmq+v+YT+i2aQ2ZE w6JevCbUv4fLUVCJ9F5F1ai/PA6fx4be+xb3kIYtwxkP3f0KV2fjzEAjhV23KPrBIxqzWpe8Q BSpUBmOi8sq/pqTwL3Y1Mzv2hPSEU5Ey518hmgHioKV3CvvHsjc7wgLxgqG3xPefbFs7zd3WQ rxnLzx+Q5RSTIwsDvCwkx8oTCDYGOmpxySlOODBvx0zYyFeU/VQzNJhbjHqn/ATa8odt0LXrc oQtgSzW+Cb6PS7sbaphBdTF/320J46LWbtv7bLfQzHMJDSfN7Il40d4NRp3TnLEYHuoH7TVoG rN6Z0fLOTRVOSsnCeYABrsUj1M58psqCR23qBeA+GwiaV7xvuhWj9aIgNWztTox9g+lUTgkYg FIj9E9P2/7kSHmgonByZG0= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson The original value of frame_addr is still required for its use in the call to unlock_user_struct below. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-13-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index bc41b01c5deb..81ba59b46af5 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -168,7 +168,7 @@ void setup_frame(int sig, struct target_sigaction *ka, env->psw.addr =3D ka->_sa_handler; =20 env->regs[2] =3D sig; - env->regs[3] =3D frame_addr +=3D offsetof(typeof(*frame), sc); + env->regs[3] =3D frame_addr + offsetof(typeof(*frame), sc); =20 /* * We forgot to include these in the sigcontext. --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621318657; cv=none; d=zohomail.com; s=zohoarc; b=JhNkqWWQNyF0DqIHWqwDDtIiyr1AVmAVmPRY4LWEieR0SADH3DMqvZ73UFnO9cHs5A+2kDuUSVwGJ7xMI6WbHoQheFN198/he5MMkldz5A5nLM4qMXasR7NYdfO4xECxR+r56VO/VXCx/CdRIAGHp8DZ3aaHHI8HjSs+BXpuRLQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621318657; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=njA1vIsCq4RtA6O2hMBIync3H+LHwCosZAH7cFlzsH0=; b=Mci33umSU+otc9KArAKvXI8xhNSQJjwIR7AtfhCriIgSe0dT3O3KCvex0/XU/SwlUQHn+Qd5cOQ5mDGJuk9JPNC3qajTlQZaecL3B/WjKIXhV4u0NYkoaznURoJSScmDSyyz5vXMAZYY5iNiWpNeirHb08l8WiTyVYIkz2bsCtU= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621318657308530.0776893661506; Mon, 17 May 2021 23:17:37 -0700 (PDT) Received: from localhost ([::1]:39592 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lit2u-0008JF-AM for importer@patchew.org; Tue, 18 May 2021 02:17:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38800) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKs-0007oK-0G for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:06 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:48807) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007Ad-2x for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:05 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MHEPI-1leUd21PzE-00DG9u; Tue, 18 May 2021 07:31:56 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 45/59] linux-user/s390x: Add build asserts for sigset sizes Date: Tue, 18 May 2021 07:31:17 +0200 Message-Id: <20210518053131.87212-46-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:67j5AqJGsbL04czHgkpz4p5+F0BEW+pTridcSZoViXMHLJcRnxS HG83q5NBR7IjB/8BWTmQSQRUMUkHMpMEKHyhcyXCYBBMivYv34alENyzlbZbUyZODMD0V4t ta0D/F94a+NH0jpoYXbJY+ksiEoPzOGieI1sYqNrv84cxKXU7aEQp0QgiQBCJ9/sqJzt7M5 lmhOo501069D7FYif0pLQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:ofUPTZ16NJ8=:FmQsXo5RtrB+NzZA/Cqqx9 abK6+2y8tJIMNyJ3bH/qwsB5f7B+ouN0KDvsGhNpq77ky7T/+p9B+MjghjlPLXRJ9kXAocRDT ZHoQDlJWx2uNyiI2seEC3V2Xzc+583IP3hQAIZgNjG8o8dfTq/KSCPC657+02rRBEFcHdb8CE r28D4U32vUXkQ6aRJFa4s4xuZvSDGWpjgDKHGsaJ9RDom8K+alJLCMipeRkSsI3tXrIXPRKuD Quh76OibVkl+DT4tZBYaF7culrzB600rB+LzrfSFhxPLOHavpNbsufT5v6OXYGpDY2JQoFx2y R5PsYpd5ePGAarhsVBEgnLsvluM7eyVemRsMLOh23FokiUHfNwgd4l4Uiy8FSQaJ1LRuBCuTu L+6qm2muolaxz75oW1JWlw1juDBd9CWHF8Ed8inWAGeiqFUezy6S53Gnd3UHfaABDRk7nr5dv xoRlgNofFD5oCjJcaiXvhh5qm1auAZ4hMxTtMoIrIU/cw9fFAjSmxOPyv7RelofUGFjponH0g Iv2zQ639WLEMS9yOrtPH0g= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.187; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson At point of usage, it's not immediately obvious that we don't need a loop to copy these arrays. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-14-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index 81ba59b46af5..839a7ae4b3d6 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -141,6 +141,8 @@ void setup_frame(int sig, struct target_sigaction *ka, return; } =20 + /* Make sure that we're initializing all of oldmask. */ + QEMU_BUILD_BUG_ON(ARRAY_SIZE(frame->sc.oldmask) !=3D 1); __put_user(set->sig[0], &frame->sc.oldmask[0]); =20 save_sigregs(env, &frame->sregs); @@ -266,6 +268,9 @@ long do_sigreturn(CPUS390XState *env) force_sig(TARGET_SIGSEGV); return -TARGET_QEMU_ESIGRETURN; } + + /* Make sure that we're initializing all of target_set. */ + QEMU_BUILD_BUG_ON(ARRAY_SIZE(target_set.sig) !=3D 1); __get_user(target_set.sig[0], &frame->sc.oldmask[0]); =20 target_to_host_sigset_internal(&set, &target_set); --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621316865; cv=none; d=zohomail.com; s=zohoarc; b=El0Bu7Zp1LUWn/eZoxf8Bznxa3JaOa1BBegGXwtzp6aAGoFp26dcy9DvwmLXYf0yWO5f0geN4DWeyUj4IQflsdqTXfZDrC5kYBQuT2lbtFY0pMQTR8f2Egl0ZnId/6hUxlVudGTeGo+i9VX2nPekpfaAo+YkXwb4aLPqJorz8Rg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621316865; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fjU0QaOwhlfOwCDWXKYMd5ILKcmprMipYdWURQqx3Kw=; b=SPlhUkKjqHygi3w3HBvf8v3dk8ugaePyajc83NE/wO3U+lzMEaTEe8WIwtHwLTK48dwNBw8gqqNvsinoGgQ8Gczqli0xUcRkgnls6Xc9LdOk1i2/ZLGx2Mko8s6L5W1w+5rHCiFD2ftYsdvrHE8MpIJLfD48nawtUWgFZpuH478= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 162131686515366.46199338628833; Mon, 17 May 2021 22:47:45 -0700 (PDT) Received: from localhost ([::1]:58088 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisa0-0004m0-41 for importer@patchew.org; Tue, 18 May 2021 01:47:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38764) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKq-0007ii-Gy for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:04 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:35795) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007Ag-21 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:04 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MPK73-1m7pAn3RGf-00PfAB; Tue, 18 May 2021 07:31:57 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 46/59] linux-user/s390x: Clean up signal.c Date: Tue, 18 May 2021 07:31:18 +0200 Message-Id: <20210518053131.87212-47-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:aF01Q0c1rPkGnQ23tgwGNdebELuEzZ8xhHxMhWwu+us3Mz1WpYN MHmD9D7XNKBslsN9VrHQMN7Zx8N48fpHZ1FpP2Xm9Wh+vvy2sU7VWCXa+SJ4hI0AZxsIS2x lP9uhbbtsY5HELTHOBLhKXKz28nUGfl/Whm7sO2jzLLBSZ8BET7NwSDlLtM2yYozhnJttDW GAj3Du/9vcEUWiu8EnhDw== X-UI-Out-Filterresults: notjunk:1;V03:K0:dt3sB+B6qk0=:kAtX3DkjoKRJH9v7IeaxnE nxU/YeG/vWxquBEo8bXOGITxfE0r7cVaKyS+b/njDBJpba+QYV/hCix5ALR63jlfVnVldQbUE UegTlt/ug+tR+JxCWakEMr03lHqbcqOHC2IsXy7cKXBk8v2uo6ssXlhneBGXm7PqRFlh5xHEH HH1ChwO8V05CYXDB5AjtGYgB8BRzXTFXSgsD5UvXg8lVItEtFodWusnqFnvAaDdxq3cXt0l4d 4IGLvrMh42T4FhIZWVwhdFlGL529hGD6rKzMESioKOSB7WzRuY3ihstdEuuSL+2bHQB0Vzt5W ymkbl1hhCsgHwb4T2SSZzRP14lW4ICEZ64mPlUBeqpi11VcBbgHmgc7IHB3dKCPMzg4c2cPm9 kul1IO1FrKICFw9Gl6/JOmbqvNQjvAfloqcPOtRVe5d3hbeGKR39c+oPr3Fk0xYIExgiRHXYd ryW3mLhhuCjyxU2OqLYWY9V2bNWWgz2LGSWOY9PwOek15QmxVud5MH30Gum4r5srHvchucpkf TQ3SbFdQ3x3r4DRE8PgBxA= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.131; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Reorder the function bodies to correspond to the kernel source. Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-15-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 63 ++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 24 deletions(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index 839a7ae4b3d6..9d470e4ca069 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -133,6 +133,7 @@ void setup_frame(int sig, struct target_sigaction *ka, { sigframe *frame; abi_ulong frame_addr; + abi_ulong restorer; =20 frame_addr =3D get_sigframe(ka, env, sizeof(*frame)); trace_user_setup_frame(env, frame_addr); @@ -141,28 +142,39 @@ void setup_frame(int sig, struct target_sigaction *ka, return; } =20 + /* Set up backchain. */ + __put_user(env->regs[15], (abi_ulong *) frame); + + /* Create struct sigcontext on the signal stack. */ /* Make sure that we're initializing all of oldmask. */ QEMU_BUILD_BUG_ON(ARRAY_SIZE(frame->sc.oldmask) !=3D 1); __put_user(set->sig[0], &frame->sc.oldmask[0]); + __put_user(frame_addr + offsetof(sigframe, sregs), &frame->sc.sregs); =20 + /* Create _sigregs on the signal stack */ save_sigregs(env, &frame->sregs); =20 - __put_user(frame_addr + offsetof(sigframe, sregs), &frame->sc.sregs); + /* + * ??? The kernel uses regs->gprs[2] here, which is not yet the signo. + * Moreover the comment talks about allowing backtrace, which is really + * done by the r15 copy above. + */ + __put_user(sig, &frame->signo); =20 - /* Set up to return from userspace. If provided, use a stub - already in userspace. */ + /* + * Set up to return from userspace. + * If provided, use a stub already in userspace. + */ if (ka->sa_flags & TARGET_SA_RESTORER) { - env->regs[14] =3D ka->sa_restorer; + restorer =3D ka->sa_restorer; } else { - env->regs[14] =3D frame_addr + offsetof(sigframe, retcode); + restorer =3D frame_addr + offsetof(sigframe, retcode); __put_user(S390_SYSCALL_OPCODE | TARGET_NR_sigreturn, &frame->retcode); } =20 - /* Set up backchain. */ - __put_user(env->regs[15], (abi_ulong *) frame); - /* Set up registers for signal handler */ + env->regs[14] =3D restorer; env->regs[15] =3D frame_addr; /* Force default amode and default user address space control. */ env->psw.mask =3D PSW_MASK_64 | PSW_MASK_32 | PSW_ASC_PRIMARY @@ -180,8 +192,6 @@ void setup_frame(int sig, struct target_sigaction *ka, env->regs[5] =3D 0; /* FIXME: regs->int_parm_long */ env->regs[6] =3D 0; /* FIXME: current->thread.last_break */ =20 - /* Place signal number on stack to allow backtrace from handler. */ - __put_user(env->regs[2], &frame->signo); unlock_user_struct(frame, frame_addr, 1); } =20 @@ -191,6 +201,7 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, { rt_sigframe *frame; abi_ulong frame_addr; + abi_ulong restorer; =20 frame_addr =3D get_sigframe(ka, env, sizeof *frame); trace_user_setup_rt_frame(env, frame_addr); @@ -199,29 +210,33 @@ void setup_rt_frame(int sig, struct target_sigaction = *ka, return; } =20 - tswap_siginfo(&frame->info, info); - - /* Create the ucontext. */ - __put_user(0, &frame->uc.tuc_flags); - __put_user((abi_ulong)0, (abi_ulong *)&frame->uc.tuc_link); - target_save_altstack(&frame->uc.tuc_stack, env); - save_sigregs(env, &frame->uc.tuc_mcontext); - tswap_sigset(&frame->uc.tuc_sigmask, set); + /* Set up backchain. */ + __put_user(env->regs[15], (abi_ulong *) frame); =20 - /* Set up to return from userspace. If provided, use a stub - already in userspace. */ + /* + * Set up to return from userspace. + * If provided, use a stub already in userspace. + */ if (ka->sa_flags & TARGET_SA_RESTORER) { - env->regs[14] =3D ka->sa_restorer; + restorer =3D ka->sa_restorer; } else { - env->regs[14] =3D frame_addr + offsetof(typeof(*frame), retcode); + restorer =3D frame_addr + offsetof(typeof(*frame), retcode); __put_user(S390_SYSCALL_OPCODE | TARGET_NR_rt_sigreturn, &frame->retcode); } =20 - /* Set up backchain. */ - __put_user(env->regs[15], (abi_ulong *) frame); + /* Create siginfo on the signal stack. */ + tswap_siginfo(&frame->info, info); + + /* Create ucontext on the signal stack. */ + __put_user(0, &frame->uc.tuc_flags); + __put_user(0, &frame->uc.tuc_link); + target_save_altstack(&frame->uc.tuc_stack, env); + save_sigregs(env, &frame->uc.tuc_mcontext); + tswap_sigset(&frame->uc.tuc_sigmask, set); =20 /* Set up registers for signal handler */ + env->regs[14] =3D restorer; env->regs[15] =3D frame_addr; /* Force default amode and default user address space control. */ env->psw.mask =3D PSW_MASK_64 | PSW_MASK_32 | PSW_ASC_PRIMARY --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317285; cv=none; d=zohomail.com; s=zohoarc; b=RHlhOxMvt0IFKBhuuwb7YDdiQdT+nVV5SHejbF0/Umtj4Oxvi3R6gOp5qWYq+c2AQb/DyXusIlVdb2cfCTQnODaJ/2AC6SZAWvDeyoGGlFIm2RZiA1//YMvJVpS4OcUpcTo94mOUaLKCIw57sX+JwYkUGO6KQREykAoDavIZb0s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317285; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=c6LPnyio8Cv+TSghNAq5xCG139DThUAiHcH9HMINg68=; b=M4nyqsyw70xfBpC67wZlccrnoygOAyi9h39W+hN+eRhukhMUknht9UcV0Voz6HveEDPR5eAxRqL03VJmzSZd9LlE2ZAkA/qmzbCTBVrAg3fH/XcgoYF1KLcX9lLH4KhC3hE5Ax8gvBGB9u9O4jqgfnfEmhV5I62b8PXnHg3RrQo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317285028854.7165065726391; Mon, 17 May 2021 22:54:45 -0700 (PDT) Received: from localhost ([::1]:46624 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisgm-0007it-0n for importer@patchew.org; Tue, 18 May 2021 01:54:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38868) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKu-0007zl-GF for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:08 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:46875) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007Ap-CK for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:08 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MpCz1-1l7vEI1HAN-00qiVV; Tue, 18 May 2021 07:31:57 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 47/59] linux-user/s390x: Handle vector regs in signal stack Date: Tue, 18 May 2021 07:31:19 +0200 Message-Id: <20210518053131.87212-48-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:pduDJBBa1j5WPg2tbxd0kzTYo3QwAuSCsOz4rlxPUwgEnVg+AEE LJpbYsVCkvvPMs/NuVj9ANsiMT/c+6wWdyiLVfDGugjXSpeWskKp5R5Jk+v/TrC4QzPIkpL VSKYq0aD+91admWhBOkPeniHzOnL0O5QJxj7BBsS7UwH81j5tY0mwcpTg28mABPE9gNoxT0 YEqh/afnmsMJhMj+wo11g== X-UI-Out-Filterresults: notjunk:1;V03:K0:A6io08Te8Bo=:oXg6fa3ITkINEKenSFhoBK uo+qihW+pOWPcQJ+SJ8Ky5AbtP9WxwtINoz3+B631Fee47ErhuLQfx3bp5HNhJo3njx0ToGyW 3Sx11exjflrj3/wMLIRAvSQjSv6EPArX7pKC+BE/dbWT6x789BBS464j6YT5zNU2NpYV4vtbo WPPWCXbWa3F9rQCABDynqUPdfG37NHkMxDErG3J3c85YsD7P/PXve4rYlhdSYPWWzms8XuITg NKTap23Fcd1Z2H0yv0A/Ipi8rghc+xdElXqazVmIlCWwf6AsPDDvtHNLjy8jbN75ZBG6s6F5L S7kQSe67b1FvIFHduO0A8X/RuRAvFxrckIj73lSWHCoIki76oZWinHFfHyhQnobtVVrzqvO9S Ygz+1IzTrqEw+dI1syuhaC2W2UtBdPXoou5UgCKXj8PJYekjws3PM6V5sB4X/9Z16B+k1Xcpf QenNi7IKdZXcy8HKRMLPqUlrCgcmfHyGOtWZ1/s2NovscET2O66Bqkq40DUx9I3NsvrbsKV1P ga9L2EqHd9O6KzE069ddVw= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.187; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson , Laurent Vivier , David Hildenbrand Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Richard Henderson Signed-off-by: Richard Henderson Reviewed-by: David Hildenbrand Message-Id: <20210428193408.233706-16-richard.henderson@linaro.org> [lv: fix indentation] Signed-off-by: Laurent Vivier --- linux-user/s390x/signal.c | 62 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/linux-user/s390x/signal.c b/linux-user/s390x/signal.c index 9d470e4ca069..ef136dae3348 100644 --- a/linux-user/s390x/signal.c +++ b/linux-user/s390x/signal.c @@ -50,6 +50,12 @@ typedef struct { target_s390_fp_regs fpregs; } target_sigregs; =20 +typedef struct { + uint64_t vxrs_low[16]; + uint64_t vxrs_high[16][2]; + uint8_t reserved[128]; +} target_sigregs_ext; + typedef struct { abi_ulong oldmask[_SIGCONTEXT_NSIG_WORDS]; abi_ulong sregs; @@ -60,15 +66,20 @@ typedef struct { target_sigcontext sc; target_sigregs sregs; int signo; + target_sigregs_ext sregs_ext; uint16_t retcode; } sigframe; =20 +#define TARGET_UC_VXRS 2 + struct target_ucontext { abi_ulong tuc_flags; abi_ulong tuc_link; target_stack_t tuc_stack; target_sigregs tuc_mcontext; - target_sigset_t tuc_sigmask; /* mask last for extensibility */ + target_sigset_t tuc_sigmask; + uint8_t reserved[128 - sizeof(target_sigset_t)]; + target_sigregs_ext tuc_mcontext_ext; }; =20 typedef struct { @@ -128,6 +139,24 @@ static void save_sigregs(CPUS390XState *env, target_si= gregs *sregs) } } =20 +static void save_sigregs_ext(CPUS390XState *env, target_sigregs_ext *ext) +{ + int i; + + /* + * if (MACHINE_HAS_VX) ... + * That said, we always allocate the stack storage and the + * space is always available in env. + */ + for (i =3D 0; i < 16; ++i) { + __put_user(env->vregs[i][1], &ext->vxrs_low[i]); + } + for (i =3D 0; i < 16; ++i) { + __put_user(env->vregs[i + 16][0], &ext->vxrs_high[i][0]); + __put_user(env->vregs[i + 16][1], &ext->vxrs_high[i][1]); + } +} + void setup_frame(int sig, struct target_sigaction *ka, target_sigset_t *set, CPUS390XState *env) { @@ -161,6 +190,9 @@ void setup_frame(int sig, struct target_sigaction *ka, */ __put_user(sig, &frame->signo); =20 + /* Create sigregs_ext on the signal stack. */ + save_sigregs_ext(env, &frame->sregs_ext); + /* * Set up to return from userspace. * If provided, use a stub already in userspace. @@ -202,6 +234,7 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, rt_sigframe *frame; abi_ulong frame_addr; abi_ulong restorer; + abi_ulong uc_flags; =20 frame_addr =3D get_sigframe(ka, env, sizeof *frame); trace_user_setup_rt_frame(env, frame_addr); @@ -229,10 +262,15 @@ void setup_rt_frame(int sig, struct target_sigaction = *ka, tswap_siginfo(&frame->info, info); =20 /* Create ucontext on the signal stack. */ - __put_user(0, &frame->uc.tuc_flags); + uc_flags =3D 0; + if (s390_has_feat(S390_FEAT_VECTOR)) { + uc_flags |=3D TARGET_UC_VXRS; + } + __put_user(uc_flags, &frame->uc.tuc_flags); __put_user(0, &frame->uc.tuc_link); target_save_altstack(&frame->uc.tuc_stack, env); save_sigregs(env, &frame->uc.tuc_mcontext); + save_sigregs_ext(env, &frame->uc.tuc_mcontext_ext); tswap_sigset(&frame->uc.tuc_sigmask, set); =20 /* Set up registers for signal handler */ @@ -271,6 +309,24 @@ static void restore_sigregs(CPUS390XState *env, target= _sigregs *sc) } } =20 +static void restore_sigregs_ext(CPUS390XState *env, target_sigregs_ext *ex= t) +{ + int i; + + /* + * if (MACHINE_HAS_VX) ... + * That said, we always allocate the stack storage and the + * space is always available in env. + */ + for (i =3D 0; i < 16; ++i) { + __get_user(env->vregs[i][1], &ext->vxrs_low[i]); + } + for (i =3D 0; i < 16; ++i) { + __get_user(env->vregs[i + 16][0], &ext->vxrs_high[i][0]); + __get_user(env->vregs[i + 16][1], &ext->vxrs_high[i][1]); + } +} + long do_sigreturn(CPUS390XState *env) { sigframe *frame; @@ -292,6 +348,7 @@ long do_sigreturn(CPUS390XState *env) set_sigmask(&set); /* ~_BLOCKABLE? */ =20 restore_sigregs(env, &frame->sregs); + restore_sigregs_ext(env, &frame->sregs_ext); =20 unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; @@ -313,6 +370,7 @@ long do_rt_sigreturn(CPUS390XState *env) set_sigmask(&set); /* ~_BLOCKABLE? */ =20 restore_sigregs(env, &frame->uc.tuc_mcontext); + restore_sigregs_ext(env, &frame->uc.tuc_mcontext_ext); =20 target_restore_altstack(&frame->uc.tuc_stack, env); =20 --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621318797; cv=none; d=zohomail.com; s=zohoarc; b=EMV55d1R0N0e3X4JBQR5wSW89ZKchKhTj8FlBX+y/LRWg9C+FstaYf26KUGos2kyMvTSJtNneXgIvl1jQPP6oCzbnxHmRm7dF+o0Q2dxgcklAsLY3bSjeN+MLTmgGU/WMTJoSv+vc09w8SN5u8r2XkSpExf1sEMxhqDUBTThr8M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621318797; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=fZKRhaSgdfMQjo0BdWtxOeY3un/CFuEhMtu5QvLloXk=; b=AORhyTo4uNdDOss3SVe/WtkL2ap2rCVzNyMjEdOjcS6Njy80Me/b6VbbyKilvlZUfYsAlqs/Xwwjpb8lg+kMe1YPvyEgYxT5VgTGWciH7+FORV+p9CaIPbvvdbfP2A0MgpPhM4w8M98Kr0aCtDrx/k4aiaPjV7z0z0igrXhEKZo= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621318797654495.4433191591053; Mon, 17 May 2021 23:19:57 -0700 (PDT) Received: from localhost ([::1]:43970 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lit5A-0002qi-Iz for importer@patchew.org; Tue, 18 May 2021 02:19:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38824) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKt-0007uv-91 for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:07 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:56653) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007AZ-3M for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:06 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N7xml-1lM8hK3Rq7-0155bB; Tue, 18 May 2021 07:31:58 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 48/59] linux-user: Add copy_file_range to strace.list Date: Tue, 18 May 2021 07:31:20 +0200 Message-Id: <20210518053131.87212-49-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:dvB6PcrcN6ilYV8bgAKDbF7MKE1+GOPfVuAEQTJ9/JHsDkL7sK6 s27uS3psFhl56FT0iG58gnaeobkmEFn4aGC1G4IX5bT0zn6VUja4jxRPrleJyzMOkicdBXN P6djyhMg2BFP+dtZVO8ntJuXhQua885Th1Cx5IHX9THbjbH67Ipy73HPc+/b56XdVeJVkO2 xTAtvTxwoIKt7DIRdTgDg== X-UI-Out-Filterresults: notjunk:1;V03:K0:/PzF3qIWHQM=:ZR5yHz/zLf2grza3Cd0x+k iXvw8CySCQ0Jvzt12RarEeqfnNPn12Y9hEYbS2KRWT+ILyQUIw5GezVusgHLL5n0iktWq96BG jHxwQ8uD08hxyiIWyTNhckT67CKM18FVo9fhXniQxrZCha029BTYF2nfUPiQPGMddpldq0iPL l7M1jO06QRZ+KHV/td+Y8xR1OeGRoUgxJ3BpYIraw0DBjai08tdM1IQzwy6XtKsf641g92unT bxv//cv1U7jmZliYty4P6OCY2FGqoMPL0cc2fal3ifXbN4chVg+g/VtZd4OcnVtKZ/+fTdCbZ 8PVPuTnG6vv+eJbo291ImBacVVwuDGhoFEJR5dOn+9MiF95fwLB+Y4lQOHomUZ14C89+N7zlo Xti+F52B2/QFMGVRpYhIAa57jRIialrrP0v2Twp4RJWlx94m8Z+cDL0BuAqvYoTyRQoMcgjv1 6yQAuZy42yaiU0OgK8CB/Uk1JJvkwtPj66qafn3dq3pCRpJe+xfIT+qOiin/P1Bn+pXs/H3S4 kJDoxcWH+6kE/zpfMvt7Uc= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Giuseppe Musacchio , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Giuseppe Musacchio Signed-off-by: Giuseppe Musacchio Reviewed-by: Laurent Vivier Message-Id: <20210503174159.54302-2-thatlemon@gmail.com> Signed-off-by: Laurent Vivier --- linux-user/strace.list | 3 +++ 1 file changed, 3 insertions(+) diff --git a/linux-user/strace.list b/linux-user/strace.list index 18f72172754f..278596acd131 100644 --- a/linux-user/strace.list +++ b/linux-user/strace.list @@ -1668,3 +1668,6 @@ #ifdef TARGET_NR_statx { TARGET_NR_statx, "statx", NULL, print_statx, NULL }, #endif +#ifdef TARGET_NR_copy_file_range +{ TARGET_NR_copy_file_range, "copy_file_range", "%s(%d,%p,%d,%p,"TARGET_AB= I_FMT_lu",%u)", NULL, NULL }, +#endif --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317143; cv=none; d=zohomail.com; s=zohoarc; b=Z3+CX40oBUfrb1oPCHMHYc23uU+Bzhp1FvRy9RCLJVU/XFyrA00fAsuxhMw+WvFXoy77mHyjVRZlP81myAMDDuSWnTzM+QCIkRkuwbQct9QDx5rbt1PrknF5RNDxTrvQzMwj50DnR2gk5DWEO8MQzn82cAoXWPqa5uBUnCozIX4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317143; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=brYFEtFWbhL4vD+fr4pZbYOSezCMLKwBc2cNWj9i4pU=; b=iUfFxfbPTh2mdcGEQ2IlDpEFeMUFV3rPADbVyP1oEx9QC4haw9Xn8opgvIMwVPazXQ3we0RikSMTm4SnqeU1VnvAhgCJR0Vo0hhZk9C84h4bJ+U/N/3XLyPdYnZIJ5JIfBV56P/oS3eq0SdP+dJ1FkYsoYePc9nby7LnRiL6bew= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317143437929.868893164787; Mon, 17 May 2021 22:52:23 -0700 (PDT) Received: from localhost ([::1]:41142 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liseQ-0003zB-9A for importer@patchew.org; Tue, 18 May 2021 01:52:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38816) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKs-0007sT-Ru for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:06 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:47325) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKn-0007Ab-3b for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:06 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1Mi4un-1lDvEl0z6f-00e2Fr; Tue, 18 May 2021 07:31:58 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 49/59] linux-user: Fix erroneous conversion in copy_file_range Date: Tue, 18 May 2021 07:31:21 +0200 Message-Id: <20210518053131.87212-50-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:2m66dtMcqhEvW3FNDh7Ye8Qhx7Nr2Ml7J22/uiW+dWCKjCYiX8F 7WBt5OXG71vgCi2FvEvSGJ4O8uWBFUAKLz4edz/3lZ+e1Q20fa0UkfB6LniCs2XvCdZSr9g YthOUsB3nt9TwntAMrG3LklOon9Q22JmgueAEcajZOWxMWrsL3XpcJAdb1X12ty9x9gBQWo theXAsbMhjp4aqYNHJCpQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:r6sq6qhVhR4=:zIEYJvBNmKXYHhfWzvHYzX hDFq26l2awy8xtD/VYW2d0k0comP/3Jpr8Sz84ZMor3wYZwOwGUfjXsAYbY4eUEWcWRtZjPNa 60xxkLHWJ5IHq/bON9tF/i+E1l9p83yTAXx18c/H/rao3MTX2f37DOU2dluLIUmOTi6DgmmOZ wxyf+xmQz6z2iVerEDYOom3AYlSeDg6QNj9ajTytS5X8xwqcFs4bWYx/XMOn5OeGHVowqidZA G2C7GzqtztBlksS6mupKLdlBEhT0OeYvFeyTEBIEQt11ym+HirOF56ycR/hmpdwJkWMfY8BhC TuUlK2vG/uZGqJpQuI7Aao8uIcrYhFTm3a0czc8DhbIEwMiehSMG0p7Rt5JSZ3IyBwXD/of27 sMwDsfnyt5Jm0GDy9+iCoLFkiLXpn3icQe07LbWqwikKb2sMccQovPECSD9kT69SfbH2CUdO3 AZFxCJtthT5krD1WU+3UkgGs2qd0Xb1lhSvUPJWPs88WEUu3b9Sq2uurAqj0O49t6AFecXuNa YOuSYZSy4Xql7Rdq4m427I= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.134; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Giuseppe Musacchio , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" From: Giuseppe Musacchio The implicit cast from abi_long to size_t may introduce an intermediate unwanted sign-extension of the value for 32bit targets running on 64bit hosts. Signed-off-by: Giuseppe Musacchio Reviewed-by: Laurent Vivier Message-Id: <20210503174159.54302-3-thatlemon@gmail.com> Signed-off-by: Laurent Vivier --- linux-user/syscall.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 4d52b2cfe36d..e05870c33884 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -13244,8 +13244,9 @@ static abi_long do_syscall1(void *cpu_env, int num,= abi_long arg1, } poutoff =3D &outoff; } + /* Do not sign-extend the count parameter. */ ret =3D get_errno(safe_copy_file_range(arg1, pinoff, arg3, pou= toff, - arg5, arg6)); + (abi_ulong)arg5, arg6)); if (!is_error(ret) && ret > 0) { if (arg2) { if (put_user_u64(inoff, arg2)) { --=20 2.31.1 From nobody Fri May 17 06:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1621317057; cv=none; d=zohomail.com; s=zohoarc; b=Ecwz68DregPj0bdoEjgrwoYOAkeBe6wEymY7nerDlpbLKJl9QMMVupfs7n81a+EeilqUZw7ExUnC0xdqAIr37bybtsZq2D//o7K2uXta4dgG9oaVE6H9XdY1Fz659xYrIK8ajMURsgIrGpvoej8gcWPYCikgNoeX5h2PwXohRuk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621317057; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=j8ZN63HldHd5mC4I2oIHQ3/SnQCT10drJJjnMKs8qik=; b=S60/nTPnH5CrpYmX5SYHyMuRreWFQtGUBvuSOrOW1OV6zStV7Qp15D+v6rn726+2dRu5BtMgV6hI56l3YbazCV3K5DhlCS1NyKc8qNejGj29Ddjd53tAl1QLDS1d29+UkqU9Fg/MKrUDi3Xhq1WqLv37M+o9AQqm9dWXc7wAX3U= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621317057474358.02688774745184; Mon, 17 May 2021 22:50:57 -0700 (PDT) Received: from localhost ([::1]:38202 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lisd4-0001yk-HF for importer@patchew.org; Tue, 18 May 2021 01:50:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38870) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKu-00080a-Lp for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:09 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:45525) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lisKo-0007B0-Dt for qemu-devel@nongnu.org; Tue, 18 May 2021 01:32:08 -0400 Received: from quad ([82.142.31.78]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M8k65-1lmywJ2lYf-004hR9; Tue, 18 May 2021 07:31:58 +0200 From: Laurent Vivier To: qemu-devel@nongnu.org Subject: [PULL 50/59] linux-user: use GDateTime for formatting timestamp for core file Date: Tue, 18 May 2021 07:31:22 +0200 Message-Id: <20210518053131.87212-51-laurent@vivier.eu> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210518053131.87212-1-laurent@vivier.eu> References: <20210518053131.87212-1-laurent@vivier.eu> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:uc6aqCg3IHn/3/LGNSWP4wZOc9Of8oBjTz6CDMCOCXB5bhYaC+L D1ndklJaF+tXNv11p9uvbr3zLI3QOUTlcjcRMfbh+PxlYpSAbLKhOYHCXxRPqlRI2+7NTeQ ILD/DLFjSVBLbQe8MnhhidO89R4ezNWjpAUMwYcpvNiezComAGuYfyFT9CIy+VX78jgS0mW aS+4IdzjHyf7+Kuf4OAzQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:HNGPEcfKNwY=:8OBBmtFFr+zdxD+q5A9/xu Snfw5Pqf5tHm0LeVUdD79JCqFcgffecAozmmWYAwAaJPHDU3Nwb6Zzexto0eyeDsjHPQMNmto W5nl/UObMbNdJ7LL91WUTKDn54QVaiSiW3kJoGX+xbSzfkoEX5NpKyRDeO23jkudKwbEb5d4z b0qNf9S77HYlY5cmWbwJrz8ZIng2K5QTCrsZj3HQRtvC4qC3yaq8AxCkYKseGEYXu+IfEoNtk X/OtoeV7EOO7Mn3vuB5u+u8BQ2WFvUDvMOshZs+LiXcoKVlY5N7AZoQCZxBaQIKrC5foWXKXK vl02crU2OoxSOiEtMdQlmI2lrLJjsylVn+3v2IsqJ7XamuHL+QzdWCYvzWXZyuUPu2om9wfBt dqWzNDWlp76Wj3vjQnRfh+G9+OuGuQVc3V4AuSbDYnWbXe6FDbmqrykesWdVXb0915XYfZIkF CZcVHzWfEyGue7GK0gy/d3M9c03Ebw+N85ju2BlJ9RmUujWdOs3YOnbv514RXpHX+pjwglCZa CLCKB3TPZNIFq9OD5PeNK8= Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=212.227.126.131; envelope-from=laurent@vivier.eu; helo=mout.kundenserver.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" From: Daniel P. Berrang=C3=A9 The GDateTime APIs provided by GLib avoid portability pitfalls, such as some platforms where 'struct timeval.tv_sec' field is still 'long' instead of 'time_t'. When combined with automatic cleanup, GDateTime often results in simpler code too. Signed-off-by: Daniel P. Berrang=C3=A9 Reviewed-by: Laurent Vivier Message-Id: <20210505103702.521457-7-berrange@redhat.com> Signed-off-by: Laurent Vivier --- linux-user/elfload.c | 36 +++++++++--------------------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/linux-user/elfload.c b/linux-user/elfload.c index ffc03d72f935..015eed1a27b4 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -3376,7 +3376,6 @@ static size_t note_size(const struct memelfnote *); static void free_note_info(struct elf_note_info *); static int fill_note_info(struct elf_note_info *, long, const CPUArchState= *); static void fill_thread_info(struct elf_note_info *, const CPUArchState *); -static int core_dump_filename(const TaskState *, char *, size_t); =20 static int dump_write(int, const void *, size_t); static int write_note(struct memelfnote *, int); @@ -3675,32 +3674,16 @@ static void fill_auxv_note(struct memelfnote *note,= const TaskState *ts) * for the name: * qemu__-