From patchwork Mon Apr 26 02:53:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427488 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3321793jao; Sun, 25 Apr 2021 19:54:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJygjkC7/Hg2HfWeIJpDPX3IigjRxAUj22/HvwUub/xlNb3VbrZ25LZF2fegOFP2iLyX+YQ5 X-Received: by 2002:a05:6602:450:: with SMTP id e16mr12452800iov.154.1619405653188; Sun, 25 Apr 2021 19:54:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619405653; cv=none; d=google.com; s=arc-20160816; b=o1zWXS67z1VkmFP3Ifn9gxkw2V3gd+kOvghkUfG+8RxhpK2xPKeUCcpzRoKBc6p43b q4jL4GOKIVKk+XvxkpM7ZOOkTWABJkyUAEA75nSDSczhFPEYnOD9A3xdVrUKHdeTv6gr loTbmrBYmX5ptTZ36f8yeUfzhnH34bd1esPDs0nHi0ypSBTwXeZLXnKdcMMDWTqg7SZv +UVn2A5aZ/AOoswI+gJ4zIcNMEXvXqnKxWhl1i1h8mIJhZuuVcjzdUNtDK+XM/t1lLYV 9163Ct1eXTwZOSq0Wx+knm1FFhgtz4YGO3OPWGouo5h8IlAwfJN2BqOj1GHjOCsVj+0F x7+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=m1XPgsGFLSBeMhD9gxrYKvEpAYHWWlmlzUSgBmaIZRg=; b=iiSiUtN+/F3NprHkdq+Sr5WfNPzNvz2/V0C2kxTs8SoI0DAS0Xf7GwUUbZ1kc926eh 3kYba7MPwR7OB6PYNCzcva6vB0jeABj8DAf/xRQ2SdGdaCZp9/DDpCKYfBDgEbTzUpEb YkqdPBi+Xwk5gYXq2UWx68I3Ae8T+xignmoGTLoqJojkQ6xrti2UpO2NHbzR5vYYdiWr F4W6+RiJoHqprBAv5rhivRXYWM7MwT7pKMuhcDeEcmF4Wv+U8RPXw7Go2sHN5xvga4Nr kY66CJK8PVz0iS+FDak6Lh3G3EKQc3I4wIl7QyeBjcpjB+BuHgWYUXFlZ/rVl0NAlR+3 U4yA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=oM0Tf9Wu; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id x14si16354096jat.31.2021.04.25.19.54.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 19:54:13 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=oM0Tf9Wu; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:51692 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larO0-0007sD-Gp for patch@linaro.org; Sun, 25 Apr 2021 22:54:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59948) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNU-0007qp-2T for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:40 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]:40853) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNS-0007V1-6l for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:39 -0400 Received: by mail-pj1-x102f.google.com with SMTP id g1-20020a17090adac1b0290150d07f9402so4284132pjx.5 for ; Sun, 25 Apr 2021 19:53:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=m1XPgsGFLSBeMhD9gxrYKvEpAYHWWlmlzUSgBmaIZRg=; b=oM0Tf9Wu2WV7Ib14DxMbaptX0HpYGg/jlfgu8OwAKXqFML1A7bdyKa4HYr3uRmyDBm 8hy1US/uSU8yyJNANiM0KKMpopsr0PL2nNIeiBNQ/l45q8dMQDUavzOfOIDi0yS/PEdA k8mnNYh6InNaQ42E6DfAvSWetIdpW4eceLS5oJVLeDhypkKh+cpShmW9TYfbGnvez4Qi HkUoWfKLB572Udu30iKyJMvDgzA5N9HNIOPgIiishGnae8QedKUGWS+ldBlkzxnAHH57 TiiaLSaMLEgkHTXzhYZEK8nfJDk4wNY+hkRGPrUHoWYC2DUmI/K5CLzYkrgtTm54SZg7 fjdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=m1XPgsGFLSBeMhD9gxrYKvEpAYHWWlmlzUSgBmaIZRg=; b=DLDTTkUHaoPe71ZikYM1aOEoCtkpnPL1tYCAF+isxR+E/JJ+tJalCs+IHkGcG0LZZg k0pDdr72Qzb0m836uSBLF308tMNoPrzGwmjBq4sfpPoWFHQw25pLeCncYWkWe9Y2/f3f AbR6qQt8dVMlcHXnZi+j5nTHyNbYi0iPbLD8R2FgfvmWugrO2xbaJPVdnTNX9UvB92LL v6tfPD6T7H6a4vbLu0VcHG4CzX4y/uC3f/7iP9lEXw6ObMaPz4p/KM7mrneLfC4yUesB dYDecu+JmAqqQrayEZuzJSF+9Yf5Pfb3N++K7d48jBk9hw+NdN7vSsJO5KCfh6kgGdjw hULQ== X-Gm-Message-State: AOAM532clUh0yhOE4NY1MC7YRa0A00efpUvH/AERvHwIhvZGhhLfMHdH PyrKMsEKvZVXGWUfryLn3u+ZPLy0DRhbhQ== X-Received: by 2002:a17:90a:a395:: with SMTP id x21mr18537113pjp.95.1619405616880; Sun, 25 Apr 2021 19:53:36 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 01/25] linux-user: Split out target_restore_altstack Date: Sun, 25 Apr 2021 19:53:10 -0700 Message-Id: <20210426025334.1168495-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Create a function to match target_save_altstack. Fix some style and unlock issues in do_sigaltstack. Signed-off-by: Richard Henderson --- linux-user/signal-common.h | 1 + linux-user/signal.c | 115 +++++++++++++++++++++---------------- 2 files changed, 66 insertions(+), 50 deletions(-) -- 2.25.1 diff --git a/linux-user/signal-common.h b/linux-user/signal-common.h index 1df1068552..34b963af9a 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); static inline void target_sigemptyset(target_sigset_t *set) { diff --git a/linux-user/signal.c b/linux-user/signal.c index 44a5012930..306f3edec5 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -297,6 +297,50 @@ void target_save_altstack(target_stack_t *uss, CPUArchState *env) __put_user(ts->sigaltstack_used.ss_size, &uss->ss_size); } +abi_long target_restore_altstack(target_stack_t *uss, abi_ulong sp) +{ + TaskState *ts = (TaskState *)thread_cpu->opaque; + size_t minstacksize = 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 = ts->info; + if (get_ppc64_abi(image) > 1) { + minstacksize = 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 = 0; + ss.ss_sp = 0; + break; + + case TARGET_SS_ONSTACK: + case 0: + if (ss.ss_size < minstacksize) { + return -TARGET_ENOMEM; + } + break; + } + + ts->sigaltstack_used.ss_sp = ss.ss_sp; + ts->sigaltstack_used.ss_size = ss.ss_size; + return 0; +} + /* siginfo conversion */ static inline void host_to_target_siginfo_noswap(target_siginfo_t *tinfo, @@ -758,73 +802,44 @@ static void host_signal_handler(int host_signum, siginfo_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 = (TaskState *)thread_cpu->opaque; + target_stack_t oss, *uoss = NULL; + abi_long ret = -TARGET_EFAULT; - /* XXX: test errors */ - if(uoss_addr) - { + if (uoss_addr) { + TaskState *ts = (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); } - if(uss_addr) - { - struct target_sigaltstack *uss; - struct target_sigaltstack ss; - size_t minstacksize = TARGET_MINSIGSTKSZ; + if (uss_addr) { + target_stack_t *uss; -#if defined(TARGET_PPC64) - /* ELF V2 for PPC64 has a 4K minimum stack size for signal handlers */ - struct image_info *image = ((TaskState *)thread_cpu->opaque)->info; - if (get_ppc64_abi(image) > 1) { - minstacksize = 4096; - } -#endif - - ret = -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 = -TARGET_EPERM; - if (on_sig_stack(sp)) + ret = target_restore_altstack(uss, sp); + if (ret) { goto out; - - ret = -TARGET_EINVAL; - if (ss.ss_flags != TARGET_SS_DISABLE - && ss.ss_flags != TARGET_SS_ONSTACK - && ss.ss_flags != 0) - goto out; - - if (ss.ss_flags == TARGET_SS_DISABLE) { - ss.ss_size = 0; - ss.ss_sp = 0; - } else { - ret = -TARGET_ENOMEM; - if (ss.ss_size < minstacksize) { - goto out; - } } - - ts->sigaltstack_used.ss_sp = ss.ss_sp; - ts->sigaltstack_used.ss_size = ss.ss_size; } if (uoss_addr) { - ret = -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 = NULL; } - ret = 0; -out: + + out: + if (uoss) { + unlock_user_struct(uoss, uoss_addr, 0); + } return ret; } From patchwork Mon Apr 26 02:53:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427490 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3321803jao; Sun, 25 Apr 2021 19:54:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwuHpdQ9+eHdiQ89ECiWr7RP0Pnzhr9W8nE/UPx2dHVLejAhWjP50ED3N0fEzSkX/R9U4fV X-Received: by 2002:a5e:d61a:: with SMTP id w26mr12685140iom.52.1619405654274; Sun, 25 Apr 2021 19:54:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619405654; cv=none; d=google.com; s=arc-20160816; b=SP3naFWhHHz+cjdrWujaofp6g39rtq92MonHCtwjLFom+DF3wRx72xqQRFhfsR6rmP 9UQfFwcaTGaSsPhR+Q2Pbkv/loRDQZEajTREZQ7Hj0nezbIS29AhQM+xoqRfLtr0qX4U OlLWt/+nbM9ejad6MTeAOISD7f26Ews7KrVYMePoKZYgSv4UyTs79jkwRQ65+LjNSDrY 1bjD6WTvnElXxVyp4t+6jatI/OgrFoaawfwk7rsaYxtaRYTKEJKUb5bTG4SPARA0lEEd /zl6mMO0rHEzoDkzCaJTvy4bv7cfaevHOhhIPHsYXgu2eMWYzaZXqs6mUmPdh72VKjl1 XK9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=I/QSpFJojVKD9zlGg6U9x9sUX8bwKBgn7ApEGuKeRY8=; b=uF+F1bKPb51fUd8z+MXNeyxm0siqIdwbBoOUNYuD52PeQp5fl0M0aa0vpya9Vw0JHO mR660bz1WYm9N6Uoel0TDjF3+h5HwUOHu72MNUSRpQzi4Ze1KTIl28GKQ3xr9iC2K86V tdgYvXWT/vmzqLIPuPeXVMzItRlP3nbdWuuIIRqXewavuN1CPVzqtwJLiA7jSKRo7Jn6 MT/b5xUk+QrJCaAVM4nwIqw8f9J/aBPUYZwA4nUD+E92MU+H/P3bTkAJADhO9zWNns3X MSG9SH3yqlPePa7tWlTTGX0SphLISPu7Ro68qc6ggp+zMVTFqcVfBSydA1V5Svjfgpnr j0Lw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tFd7oVBa; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id e11si14110467jap.111.2021.04.25.19.54.14 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 19:54:14 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tFd7oVBa; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:51746 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larO1-0007td-I6 for patch@linaro.org; Sun, 25 Apr 2021 22:54:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59978) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNW-0007s7-NE for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:43 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]:45646) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNT-0007W1-US for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:42 -0400 Received: by mail-pl1-x630.google.com with SMTP id p17so2240910plf.12 for ; Sun, 25 Apr 2021 19:53:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=I/QSpFJojVKD9zlGg6U9x9sUX8bwKBgn7ApEGuKeRY8=; b=tFd7oVBaRe6IByjuWo1B9UeCSTIfehrsdDBnJV/HUtdvSIgvLas16y+VBx4ddIJnhF CnK3c7joSTJ4NSVBzLskVk0ahUTcLTjac5NXEVg9i3+leFGlLFbLTsiVxMgUlUp2Zu/r dNjo6y0bUEnnqEOalKiMWFjl4FWETgkP+xSPnWXr6cwiFzd2t/wIcu9wzVeN9zsIdQWj tqmbmYnbwbDCKabr5sK43xdfzLW9b/zDlY2JQETKBGkrOAXLgtoBnPPJ48U3ML8NUD+R YkUl/NTNuVKAJ4yPyTsEW0VaxvdeDKIFsU5nZuyTCNirHnOk8Soxb7/LOTUPvCibSOC6 WR/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=I/QSpFJojVKD9zlGg6U9x9sUX8bwKBgn7ApEGuKeRY8=; b=h6ejMmY1GuWRM/QB0Rz2P1G6f2JfFaDArYAvN63deXlXdyJsX3FD1fZWTPh6K6cq63 oD7VOEcxM187sS7e/sq6gJT/uCYtzeIx/gxvO6J/5dqpkh33zaun7vwdjbZtUc3cY2Jt SXRoz4+XPPWKL8yjtK6tUhJrzbCHVRD7grLEJ+3KZGCdC48a+6pUzoXUrgevltgtAkUP dXdzNvRd4hdKAzmRytvFczd4KVYGDqaNCirTU6b2e4KvgxUhdTCDOhAHjoyFBDltJjPn J8PnJjY30LL4MbSsWcsNyP9ZPab9QNgYPkqZRbbGPqQzYIH9NL9WYmvrcYU/obNlPAWp xsIg== X-Gm-Message-State: AOAM531log+dw36qigi97aqY+nd8sIUJKaYqa9YtbfsCTQOiavN+vnDa WY3m5qNAEjnhEQd0z7EOc1v25ObygNwefg== X-Received: by 2002:a17:90a:cd06:: with SMTP id d6mr18843319pju.91.1619405618479; Sun, 25 Apr 2021 19:53:38 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 02/25] linux-user: Use target_restore_altstack in all sigreturn Date: Sun, 25 Apr 2021 19:53:11 -0700 Message-Id: <20210426025334.1168495-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x630.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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 --- 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(-) -- 2.25.1 diff --git a/linux-user/aarch64/signal.c b/linux-user/aarch64/signal.c index b591790c22..2a1b7dbcdc 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; } - if (do_sigaltstack(frame_addr + - offsetof(struct target_rt_sigframe, uc.tuc_stack), - 0, get_sp_from_cpustate(env)) == -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; diff --git a/linux-user/alpha/signal.c b/linux-user/alpha/signal.c index 3aa4b339a4..011da0a53b 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); 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]) == -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, env->ir[IR_SP]); 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 f21d1535e4..b7a772302f 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, } } - if (do_sigaltstack(context_addr - + offsetof(struct target_ucontext_v2, tuc_stack), - 0, get_sp_from_cpustate(env)) == -EFAULT) { - return 1; - } + target_restore_altstack(&uc->tuc_stack, get_sp_from_cpustate(env)); #if 0 /* Send SIGTRAP if we're single-stepping */ @@ -773,8 +769,7 @@ static long do_rt_sigreturn_v1(CPUARMState *env) goto badframe; } - if (do_sigaltstack(frame_addr + offsetof(struct rt_sigframe_v1, uc.tuc_stack), 0, get_sp_from_cpustate(env)) == -EFAULT) - goto badframe; + target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env)); #if 0 /* Send SIGTRAP if we're single-stepping */ diff --git a/linux-user/hexagon/signal.c b/linux-user/hexagon/signal.c index fde8dc93b7..3854eb4709 100644 --- a/linux-user/hexagon/signal.c +++ b/linux-user/hexagon/signal.c @@ -260,11 +260,7 @@ long do_rt_sigreturn(CPUHexagonState *env) } restore_ucontext(env, &frame->uc); - - if (do_sigaltstack(frame_addr + offsetof(struct target_rt_sigframe, - uc.uc_stack), 0, get_sp_from_cpustate(env)) == -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.uc_stack, get_sp_from_cpustate(env)); 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 d1a58feeb3..578874cf27 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); 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]) == -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, env->gr[30]); 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 9320e1d472..3a0a1546a6 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; } - if (do_sigaltstack(frame_addr + offsetof(struct rt_sigframe, uc.tuc_stack), 0, - get_sp_from_cpustate(env)) == -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; diff --git a/linux-user/m68k/signal.c b/linux-user/m68k/signal.c index 49ff87c77b..004b59fb61 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; - if (do_sigaltstack(frame_addr + - offsetof(struct target_rt_sigframe, uc.tuc_stack), - 0, get_sp_from_cpustate(env)) == -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; diff --git a/linux-user/microblaze/signal.c b/linux-user/microblaze/signal.c index cf0707b556..f59a1faf47 100644 --- a/linux-user/microblaze/signal.c +++ b/linux-user/microblaze/signal.c @@ -209,11 +209,7 @@ long do_rt_sigreturn(CPUMBState *env) restore_sigcontext(&frame->uc.tuc_mcontext, env); - if (do_sigaltstack(frame_addr + - offsetof(struct target_rt_sigframe, uc.tuc_stack), - 0, get_sp_from_cpustate(env)) == -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; diff --git a/linux-user/mips/signal.c b/linux-user/mips/signal.c index 455a8a229a..456fa64f41 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); 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)) == -EFAULT) - goto badframe; + target_restore_altstack(&frame->rs_uc.tuc_stack, get_sp_from_cpustate(env)); env->active_tc.PC = 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 7d535065ed..751ea88811 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 = env->regs[R_SP]; unsigned long *gregs = uc->tuc_mcontext.gregs; - int err; /* Always make any pending restarted system calls return -EINTR */ /* current->restart_block.fn = do_no_restart_syscall; */ @@ -130,11 +128,7 @@ static int rt_restore_ucontext(CPUNios2State *env, struct target_ucontext *uc, __get_user(env->regs[R_RA], &gregs[23]); __get_user(env->regs[R_SP], &gregs[28]); - off = offsetof(struct target_rt_sigframe, uc.tuc_stack); - err = do_sigaltstack(frame_addr + off, 0, get_sp_from_cpustate(env)); - if (err == -EFAULT) { - return 1; - } + target_restore_altstack(&uc->tuc_stack, get_sp_from_cpustate(env)); *pr2 = env->regs[2]; return 0; diff --git a/linux-user/openrisc/signal.c b/linux-user/openrisc/signal.c index 232ad82b98..86f94d7f76 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); restore_sigcontext(env, &frame->uc.tuc_mcontext); - if (do_sigaltstack(frame_addr + offsetof(target_rt_sigframe, uc.tuc_stack), - 0, frame_addr) == -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, frame_addr); 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 b78613f7c8..79f265f82e 100644 --- a/linux-user/ppc/signal.c +++ b/linux-user/ppc/signal.c @@ -656,9 +656,7 @@ long do_rt_sigreturn(CPUPPCState *env) if (do_setcontext(&rt_sf->uc, env, 1)) goto sigsegv; - 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]); 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 67a95dbc7b..81d1129da3 100644 --- a/linux-user/riscv/signal.c +++ b/linux-user/riscv/signal.c @@ -192,11 +192,7 @@ long do_rt_sigreturn(CPURISCVState *env) } restore_ucontext(env, &frame->uc); - - if (do_sigaltstack(frame_addr + offsetof(struct target_rt_sigframe, - uc.uc_stack), 0, get_sp_from_cpustate(env)) == -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.uc_stack, get_sp_from_cpustate(env)); 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 7107c5fb53..73806f5472 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; } - if (do_sigaltstack(frame_addr + offsetof(rt_sigframe, uc.tuc_stack), 0, - get_sp_from_cpustate(env)) == -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; diff --git a/linux-user/sh4/signal.c b/linux-user/sh4/signal.c index 29c1ee30e6..684f18da58 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); 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)) == -EFAULT) { - goto badframe; - } + target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(regs)); 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 590f0313ff..22ec6cdeb9 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); restore_sigcontext(env, frame); + target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env)); - if (do_sigaltstack(frame_addr + - offsetof(struct target_rt_sigframe, uc.tuc_stack), - 0, get_sp_from_cpustate(env)) == -TARGET_EFAULT) { - goto badframe; - } unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; From patchwork Mon Apr 26 02:53:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427494 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3323336jao; Sun, 25 Apr 2021 19:58:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwofFZn50wzqnIqho7sYV8UE9UeKAWEf008aUmkMyfHRcZ2JRqfesi7WID8al1RY4NeqAjP X-Received: by 2002:a5d:8712:: with SMTP id u18mr12539452iom.10.1619405891875; Sun, 25 Apr 2021 19:58:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619405891; cv=none; d=google.com; s=arc-20160816; b=o8AslmJkiXRA17geSY3Qct2wKyyRJgaCcyb8Pk9t0rIQxYqbXAlq3crZqG+7Fe8/PP 5s9WBiF1QIcdNT/+E1t8YHgGW9JpDBvxiNpIFb2ECJHfTSJEqeRQ3pagqJgeLdkzZBvr lLoZNBco9MkFpx1NJbKX+xEY1PixHcqHPtZ6hkaJpoJ7SYSzKhgkyOz15Gm5XgA5pCZm NKS1skr5q7q2rK+mRgj1NVdJ4TtciERb9OQYAz7v+r7JqyILyzy0NxwVWT4WDMvyPiqE Lytx10+9yoQJKGThANd8GvDrfrWihpv1IkKDjQDhL60WCSktC1NCiA/jPqZ/uX+tDwcW DDzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=IgvkexELK5GJ0O4GQCm7etvF50WdinqYZI5Hh6LxDP8=; b=JjwCVHrq9mtjN1worm5FwxL4vjfKZZ8TfqKN9aN8FxBl9EjFVlyPK7ozWxMeqW2eT+ 2n9U+jwAoWtd9t22crEBW9Q/rNPgudZ+1GhDDFB4l8KDynsQCGMANqbVSyTJRbOFIflD ougHaTcCxHLT5yCxbGXfx6p/EV8S1kEaQ6MJ13CVco7dHiZ/s4ys0wLCmxu4uTYIiGLJ JUFuSU5Cm/LYOVfJRvPA/V6zvPRwvMKTHJtukifG4g4C7K5uMgpTTJCx3D72lGk+3oek xGAsFSWt1hRCT/jIKqqC8NBZC8NP0EsTZsEnhsXmsIEsVc6PZsCdX6bQiSCeUvSt0LBz v0lg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Wefjkh+J; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id c16si14192514ilh.10.2021.04.25.19.58.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 19:58:11 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Wefjkh+J; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:60528 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larRr-0003Ai-95 for patch@linaro.org; Sun, 25 Apr 2021 22:58:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60024) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNY-0007sg-KS for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:44 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]:55811) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNU-0007W7-63 for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:44 -0400 Received: by mail-pj1-x1036.google.com with SMTP id s14so21281026pjl.5 for ; Sun, 25 Apr 2021 19:53:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=IgvkexELK5GJ0O4GQCm7etvF50WdinqYZI5Hh6LxDP8=; b=Wefjkh+J/86ayPajQeKf2KLmMOlDo+OArBeo5raeMxHpwcw7HJk0A/Hangw/X4CAH4 ywH6XNeXooxanVIjnuETGzv6y+4VjKzcKHhKSYDG4HTJjroopmUumhBYMwz9MviqKogc humE1wDuZonhtnLxOngiqFRZ/MbPSlxetHOpKe4hdOA4i8K2GqF2hfv5sExnPkEMPCa/ zkQBItLgocYz8y6MP4JGdg0KM5K9LGeS1GD3PCmHwEXtfxopvN5K8M4lhuUpacL+ZbgQ RNkb6mK3jiInJtb8OkC5N+6fhPbSj7fFI1h9ihtSR4tyiLc856tCZkJaqEVH1IxjcqHo hP2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IgvkexELK5GJ0O4GQCm7etvF50WdinqYZI5Hh6LxDP8=; b=mBDASZ2i3G75jzRN3Io2e7mL7yRsw2E2ZxO73VAGCOKro82yZLPMtc+E3bsXcjz0YY Ea9cUqpAGbktEfGq6k8ryHEJw95qVZ2eJsCXCc19X8Ejr48f03OkMxhZhBobReOqJAbJ HlcVxef1QSNEQTOAaBUnSfh/Dvt7oEsVzs+uyQ9ggu8XoGBFhYOJSyfSrNbwJ4vYupdV 5/W+jXVmP71aznFUe4CpHjLmWLJrHandCof7ABuSAxL2Nf/QTsHqscqDDyi3fOPVYhPF Ls8hsLKrXB5vx7ja/zamI8+rCtMRIYyOTh5q3MSA99ZlisAozsUrr8GNgxvvxuRdqEiV /94Q== X-Gm-Message-State: AOAM530n+8hCnWbLRF4AzqQGU0uH1KAWd/JltZsBu9LM/cFrPBOYlN4Y l6fqVMU2pRX+ekuAZohiQf/a8p3/Xwof2w== X-Received: by 2002:a17:90a:4811:: with SMTP id a17mr18156703pjh.74.1619405618965; Sun, 25 Apr 2021 19:53:38 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 03/25] linux-user: Pass CPUArchState to do_sigaltstack Date: Sun, 25 Apr 2021 19:53:12 -0700 Message-Id: <20210426025334.1168495-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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 --- linux-user/qemu.h | 3 ++- linux-user/signal.c | 11 ++++------- linux-user/syscall.c | 3 +-- 3 files changed, 7 insertions(+), 10 deletions(-) -- 2.25.1 diff --git a/linux-user/qemu.h b/linux-user/qemu.h index 74e06e7121..3b0b6b75fe 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 306f3edec5..83891f7c47 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -800,21 +800,18 @@ static void host_signal_handler(int host_signum, siginfo_t *info, /* 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 = NULL; abi_long ret = -TARGET_EFAULT; if (uoss_addr) { - TaskState *ts = (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); } if (uss_addr) { @@ -823,7 +820,7 @@ abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr, abi_ulong sp) if (!lock_user_struct(VERIFY_READ, uss, uss_addr, 1)) { goto out; } - ret = target_restore_altstack(uss, sp); + ret = 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 c7c3257f40..32a41c1387 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -11140,8 +11140,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); #ifdef CONFIG_SENDFILE #ifdef TARGET_NR_sendfile From patchwork Mon Apr 26 02:53:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427493 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3323331jao; Sun, 25 Apr 2021 19:58:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzxNj+qgEhwgoeS1q9Ifur6VOLVyav2sT+6XXProVv9cJAStlthNSvlqlub6DZoqIQef+/B X-Received: by 2002:a05:6602:1689:: with SMTP id s9mr11988195iow.171.1619405891684; Sun, 25 Apr 2021 19:58:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619405891; cv=none; d=google.com; s=arc-20160816; b=e8H71j+SOsDHGtaI1aqwTIJbAtWW1LFX/wzzb04xjYhWDxhloImZS9EzF0BqxDud1j IkHu+qYprZouCdkACpHWbGJqDzE8ZeeAcLIKCevB9mwFVfrgbzKNxyEizQg28mByFD+E n6p+y5ErEgZ12TpdKVs6oWX7EAqaN2P2odTcSUTpA3a51rZ61A4PX7peZoWETFQr/C0Q eC4iGnrXIi+UtUt2RKdrz6TeJgaJbMe+oVw6V9lO+dxmCs2zWiAD9XZkp9VD5/dHLqb9 TNVFAqlHw3EEoGa21E9OyqSiBqhSQt1yPb1vRYXvxFUN7DI9SOttD4JYW5Q9OVw4GqnA j6hQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=0iJapSqRZ7qzt1QfR4rrq+xdLRQqNaNVnQ4/u95g6og=; b=NGF6UHDlbqnMKG0WJI5fa5wb9X/2A+xXBQXJcUz9OuCP30U/EyQJJmplcC6dzA9h67 g81TzhvfDCuYilxVLc9TvrnlzPhINJmHGRNX6Vb8PJMzl3RDWXXJI8NaP+uLgjg9yrU6 v3mVnAAEiBfDXXSRTJJigJTa5Lc+kn/O0TDcb5qhEtKyWkowBELUbQ9lRY3hYl+/pQGv LD17mZlvSFksOdG43CmgLbBsjleGwOAqg3Cecqntv/R1tFtYtZ03UoZyqOsfBmF1tAB+ KAbZ3dVSKya1MAWjJOrjrNQ1gwFvysoF4PusyawBZOkWklla048NbvtmkFiVM2vSGpq3 VtOQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="pX/BKNke"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id z14si15767783ioq.100.2021.04.25.19.58.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 19:58:11 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="pX/BKNke"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:60416 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larRr-000382-1A for patch@linaro.org; Sun, 25 Apr 2021 22:58:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60070) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNc-0007up-EJ for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:48 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]:37810) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNV-0007XN-Oe for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:48 -0400 Received: by mail-pj1-x1034.google.com with SMTP id e8-20020a17090a7288b029014e51f5a6baso4302503pjg.2 for ; Sun, 25 Apr 2021 19:53:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=0iJapSqRZ7qzt1QfR4rrq+xdLRQqNaNVnQ4/u95g6og=; b=pX/BKNkeOeeTHOkb2pWHvKz1yagERlrDrFcV+lTZbf1G0jPggytdLZ8HGI7ttTEA9w SMmF7e3CK8hFypo4fUeArEa3IoMYnMReRrwTbjtrn6t19Ac68WYjOzr9KaGFJ0OBLv/F AyPITc/vYFSNm53JYnqPJQ2Q85JApLgT1/ks4y6NDGVgOwfusHUdACxbq9CURm8xiZ+m KTwF0oYl/X8nvNFvg/B3bEZDBBBiyjxE0O/EBcn3Xzb3swm2+K/9pl9wUCAYm2wmLRia Ns8WW1v5+MwU80SLL4+rVEIECdFTKL9W3c1l6AIbnfCYdG+dly7y2FLjXer4lWPhpTcu M7LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0iJapSqRZ7qzt1QfR4rrq+xdLRQqNaNVnQ4/u95g6og=; b=iAI/w1VJ9HCVoKQwV6MtuwjGhHk5sMWhqHckcSphWM5NiaPqgJdlJWQyfS7ecPFgou tdqgJKvOd7RdyX0zLdGcGMvd4RqFmnqQVk22ObuGW1517aZREMci3KeS9R8a65whnEWW RZP4sS1cbpNg7fnpMVKpzKAKlRhRTFm4w/kOGUsstBXp1xYJtzZ7Jg4uZ6HFenoFgorG /5TWBI+l05KWJrUEkhVPxRoL0PJ8cbAe1toN0J0Oht1fAzjQO5vZI2M8gB1HdeBTDdNh 0+8lOfQJFhewwb8yDDouZoIUf7IXAKTy1YmsnLrJoqAvfb4WXmGVkPVYKnNfHU4uhSSE 67KA== X-Gm-Message-State: AOAM530NAhl2Gje3Cgy0CjrUqYOCI+40115oAb4Re3oWGp4ych7nlqB+ tGw6sE4rAukJS6q/O/k92oQ068GOpX63JA== X-Received: by 2002:a17:90b:e8e:: with SMTP id fv14mr18729376pjb.5.1619405619623; Sun, 25 Apr 2021 19:53:39 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 04/25] linux-user: Pass CPUArchState to target_restore_altstack Date: Sun, 25 Apr 2021 19:53:13 -0700 Message-Id: <20210426025334.1168495-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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 --- linux-user/signal-common.h | 2 +- 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.c | 6 +++--- linux-user/xtensa/signal.c | 2 +- 18 files changed, 21 insertions(+), 21 deletions(-) -- 2.25.1 diff --git a/linux-user/signal-common.h b/linux-user/signal-common.h index 34b963af9a..ea86328b28 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); static inline void target_sigemptyset(target_sigset_t *set) { diff --git a/linux-user/aarch64/signal.c b/linux-user/aarch64/signal.c index 2a1b7dbcdc..662bcd1c4e 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; } - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env)); + target_restore_altstack(&frame->uc.tuc_stack, env); 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 011da0a53b..1129ffeea1 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); 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); 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 b7a772302f..32b68ee302 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, } } - target_restore_altstack(&uc->tuc_stack, get_sp_from_cpustate(env)); + target_restore_altstack(&uc->tuc_stack, env); #if 0 /* Send SIGTRAP if we're single-stepping */ @@ -769,7 +769,7 @@ static long do_rt_sigreturn_v1(CPUARMState *env) goto badframe; } - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env)); + target_restore_altstack(&frame->uc.tuc_stack, env); #if 0 /* Send SIGTRAP if we're single-stepping */ diff --git a/linux-user/hexagon/signal.c b/linux-user/hexagon/signal.c index 3854eb4709..85eab5e943 100644 --- a/linux-user/hexagon/signal.c +++ b/linux-user/hexagon/signal.c @@ -260,7 +260,7 @@ long do_rt_sigreturn(CPUHexagonState *env) } 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); 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 578874cf27..0e266f472d 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); 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); 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 3a0a1546a6..8701774e37 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; } - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env)); + target_restore_altstack(&frame->uc.tuc_stack, env); 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 004b59fb61..d06230655e 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; - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env)); + target_restore_altstack(&frame->uc.tuc_stack, env); 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 f59a1faf47..4c483bd8c6 100644 --- a/linux-user/microblaze/signal.c +++ b/linux-user/microblaze/signal.c @@ -209,7 +209,7 @@ long do_rt_sigreturn(CPUMBState *env) restore_sigcontext(&frame->uc.tuc_mcontext, env); - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env)); + target_restore_altstack(&frame->uc.tuc_stack, env); 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 456fa64f41..e6be807a81 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); 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); env->active_tc.PC = 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 751ea88811..cc3872f11d 100644 --- a/linux-user/nios2/signal.c +++ b/linux-user/nios2/signal.c @@ -128,7 +128,7 @@ static int rt_restore_ucontext(CPUNios2State *env, struct target_ucontext *uc, __get_user(env->regs[R_RA], &gregs[23]); __get_user(env->regs[R_SP], &gregs[28]); - target_restore_altstack(&uc->tuc_stack, get_sp_from_cpustate(env)); + target_restore_altstack(&uc->tuc_stack, env); *pr2 = env->regs[2]; return 0; diff --git a/linux-user/openrisc/signal.c b/linux-user/openrisc/signal.c index 86f94d7f76..5c5640a284 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); restore_sigcontext(env, &frame->uc.tuc_mcontext); - target_restore_altstack(&frame->uc.tuc_stack, frame_addr); + target_restore_altstack(&frame->uc.tuc_stack, env); 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 79f265f82e..8e1e642807 100644 --- a/linux-user/ppc/signal.c +++ b/linux-user/ppc/signal.c @@ -656,7 +656,7 @@ long do_rt_sigreturn(CPUPPCState *env) if (do_setcontext(&rt_sf->uc, env, 1)) goto sigsegv; - target_restore_altstack(&rt_sf->uc.tuc_stack, env->gpr[1]); + target_restore_altstack(&rt_sf->uc.tuc_stack, env); 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 81d1129da3..9405c7fd9a 100644 --- a/linux-user/riscv/signal.c +++ b/linux-user/riscv/signal.c @@ -192,7 +192,7 @@ long do_rt_sigreturn(CPURISCVState *env) } 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); 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 73806f5472..b68b44ae7e 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; } - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env)); + target_restore_altstack(&frame->uc.tuc_stack, env); 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 684f18da58..0451e65806 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); restore_sigcontext(regs, &frame->uc.tuc_mcontext); - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(regs)); + target_restore_altstack(&frame->uc.tuc_stack, regs); unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; diff --git a/linux-user/signal.c b/linux-user/signal.c index 83891f7c47..9016896dcd 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -297,7 +297,7 @@ void target_save_altstack(target_stack_t *uss, CPUArchState *env) __put_user(ts->sigaltstack_used.ss_size, &uss->ss_size); } -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 = (TaskState *)thread_cpu->opaque; size_t minstacksize = TARGET_MINSIGSTKSZ; @@ -315,7 +315,7 @@ abi_long target_restore_altstack(target_stack_t *uss, abi_ulong sp) __get_user(ss.ss_size, &uss->ss_size); __get_user(ss.ss_flags, &uss->ss_flags); - if (on_sig_stack(sp)) { + if (on_sig_stack(get_sp_from_cpustate(env))) { return -TARGET_EPERM; } @@ -820,7 +820,7 @@ abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr, if (!lock_user_struct(VERIFY_READ, uss, uss_addr, 1)) { goto out; } - ret = target_restore_altstack(uss, get_sp_from_cpustate(env)); + ret = target_restore_altstack(uss, env); if (ret) { goto out; } diff --git a/linux-user/xtensa/signal.c b/linux-user/xtensa/signal.c index 22ec6cdeb9..72771e1294 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); restore_sigcontext(env, frame); - target_restore_altstack(&frame->uc.tuc_stack, get_sp_from_cpustate(env)); + target_restore_altstack(&frame->uc.tuc_stack, env); unlock_user_struct(frame, frame_addr, 0); return -TARGET_QEMU_ESIGRETURN; From patchwork Mon Apr 26 02:53:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427501 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3326101jao; Sun, 25 Apr 2021 20:03:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzZv3q79VXU3W37Q6LzeHZbO79YRldT2W/GcoF1BbrsiGr5MJ2NC/o7vKFBAGYKcVmRtJrW X-Received: by 2002:a0c:c350:: with SMTP id j16mr15605164qvi.42.1619406192335; Sun, 25 Apr 2021 20:03:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406192; cv=none; d=google.com; s=arc-20160816; b=x2cf8Yem3dF4LIHlfcXmPiI0VD+ctlRkLTFcrvs/mZzUQTQ7pKLfKgPmxDo1Q4j3It nkXcVazaoquRwOoZCQEAOgQPt1L7j43z+Gbtisd8+bOc7IzIgUZqfuEpPZF6w5xGTFFl KkmWfR8pauGcpyklOYPxq72/bo5ct5QiwMV/KxbmJSHKVGT3zMqXfPj05JlRjh/CPa8w /a1kvbiVIZyl8wewcdkbI5B885E2mDFQr1iBtQy121TX1akJ3xm7DYaWOaSK3h9kt1uA rpGkEecZ6uJLvryXcN6q42oeydKikyeARe/pFzAOYeKUTCf0n8GsB8nEEw9bXvvWBmH/ 6Kjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=z0d/MHZc/lIMcXnltDdxqc+mT2qSBPZpXbhHRl412BM=; b=aStf9VPO8lp9zcXDMGtzuKg5oEj5nRsiEkLPni1EbeWlOdjT0FrBsugrxF7W18qWVG TRRqyTsHMERqZQAoqwtRw/ekHNeq1uR1vav7qgk5eCUrn4f7AqfRf7b07eK0JueZu9Um J2+cu9apBzEZO7fvsRKLRqvyqaiBqweZpJfYXKzH0j8xI5vhjgar7TMkzhYW0YyVy1M1 wIa0QsSJ38qVm+y64yfV/QGnA/9bgG3dIL4+w2vVujWWkA5s+fz85AEAwUhVK841slSG l7AToy4O9zm8DMirfeNjThnVauxHVGYVrxIbEoIKoowtCnMqrVeGZcdJJnoPlBpYm/ZA 3rcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Wa8QVRrN; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id t81si10246406qke.372.2021.04.25.20.03.12 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:03:12 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Wa8QVRrN; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:49224 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larWh-0001rD-P0 for patch@linaro.org; Sun, 25 Apr 2021 23:03:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60156) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNj-0007wG-Cv for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:55 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]:35588) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNV-0007Xk-Om for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:53 -0400 Received: by mail-pj1-x1032.google.com with SMTP id h14-20020a17090aea8eb02901553e1cc649so2184034pjz.0 for ; Sun, 25 Apr 2021 19:53:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=z0d/MHZc/lIMcXnltDdxqc+mT2qSBPZpXbhHRl412BM=; b=Wa8QVRrNqnW273lfLJ85TO49Shejj0n/Yf/02VHMvDOe4DD/Oc2QLksGGkn87b+rfj iacynqcJjiduwAxcPtlqvo3gszLV79V5QSvRUMZuD1bXEPZlBuuqDjs+OcZnVRsfMw/x 9CutKqWznqa2uKT+hryWSM/zZ3gyqAVzCKtvP+PoPYFtYlsznkbaiez5DQqx7G/IIsJo FJkTax1H1telRorjaIWLmld/LrOimWTCggoRW/X47QmEjY1B7QbXegsaqAG7rN12781p F7K9NIQGkWmjT0zI3GH9/WTuLBYpXNrRIAGOrZRrvhnMCoX2iKYq4cyuLBiSrqSa2Qv/ qSsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=z0d/MHZc/lIMcXnltDdxqc+mT2qSBPZpXbhHRl412BM=; b=Q7IoM/BKo6m0GX4uIL4QLdJqKMhCzmYZ/jadhtW2ASMrnY3iQv1MXt+2w9kExHrmZx jxTnkR8CQMONthKO2jD3yCSGTtgXtzWAwW077vRVoDuEY6a0pWkxIzYXl9ylBveGyCTK kqVYLEZBJAWBLWtaFrRdJM6eltaHF1WzJgcPRXNirm6m5iC/rgG6ejSs1rNc1OozzGb+ dY0s0i6acFpXrbbdA1W8GxFw7qnNqYT1WQ5PJCBsB266MxG5kHV6H31Zah6pcZsY2/BA umUEPEOjuFtJsplMFMb7RADFzrwSFcgcFxv50zKXOL/F3sZuIz70kVnwEZ6iJTFF9S+1 D8Ww== X-Gm-Message-State: AOAM531aMkBJiRLJOJnMZraYEdbZEtwGtvbv6s1CQClbfeAfScOEHWbf Ny4h2DJ8N3wG/EzqP/U7hFKmRD4rkoHyMg== X-Received: by 2002:a17:90b:2355:: with SMTP id ms21mr20017424pjb.226.1619405620189; Sun, 25 Apr 2021 19:53:40 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 05/25] linux-user/sparc: Include TARGET_STACK_BIAS in get_sp_from_cpustate Date: Sun, 25 Apr 2021 19:53:14 -0700 Message-Id: <20210426025334.1168495-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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 --- linux-user/sparc/target_cpu.h | 9 ++++++++- linux-user/sparc/signal.c | 2 -- 2 files changed, 8 insertions(+), 3 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/target_cpu.h b/linux-user/sparc/target_cpu.h index 1fa1011775..1f4bed50f4 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 +#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 newsp, unsigned flags) { @@ -40,6 +46,7 @@ static inline void cpu_clone_regs_child(CPUSPARCState *env, 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] = newsp; } @@ -77,7 +84,7 @@ static inline void cpu_set_tls(CPUSPARCState *env, target_ulong newtls) static inline abi_ulong get_sp_from_cpustate(CPUSPARCState *state) { - return state->regwptr[WREG_SP]; + return state->regwptr[WREG_SP] + TARGET_STACK_BIAS; } #endif diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index d27b7a3af7..76579093a8 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]; }; -#define TARGET_STACK_BIAS 2047 - /* {set, get}context() needed for 64-bit SparcLinux userland. */ void sparc64_set_context(CPUSPARCState *env) { From patchwork Mon Apr 26 02:53:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427489 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3321799jao; Sun, 25 Apr 2021 19:54:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyOHDTV2I2T1wPzBOUFvzQJiVdlIVayWlDe2pv/GefDEG0r3dgOyD4A5yiMexz9H6qGrIau X-Received: by 2002:a02:7f86:: with SMTP id r128mr14305208jac.136.1619405653986; Sun, 25 Apr 2021 19:54:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619405653; cv=none; d=google.com; s=arc-20160816; b=swEmLAmkiYoY3601L+lAbFEzz2wmIyZqXJ0SQpzdWpKUwIH7+aXrnCMoKAoLtauUJe sMX4SQN5TQzOcm6zAjnY8WkscH5aU1FleMBmRDaX1LuFvudCiUTCzjokGorZ2gznsX1T UISjZ8GdWQAdAuVkv2i09llQgUix0rHwGe/TJYVU1Pbad5M+mzZnfxMXW2fIigYf8eN5 YyzrndDLUKyN/Azec8zZcTRT2qKXQaNguTOnj1U8Vz+16QzDclvTrlK8NBpVT1ZAfZrp 7VSWC/KIweQznsfUH0xmPgSRsLOIcx9d7Y4qtr8x1w4vKXNUTrB94+Q5pcHbGo5yYriL dwwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=KAt4KJIdZ2Rn7oZ7gMKlRXoCjHm7a4NbLhrIC4Pyqtg=; b=c+1pHqIH9DccB9miKCQIuROZkaLwp5XFHq0aYQncJhECy26xJwO0v43psPpXRnT98N fbAcfIGmx+yPsx0XGmh2vqTQORt+Slv0yeAMYUfHTpCiZ1xs+k6NoibVN3gvj9CUMXSF cFUU1o4Gy+82ysq1ufsMaXhGaOrarW1jQti4m0wxlcN0XJ5h+6R3GYB5V3T5l0/yBWFk 92AISHl1zh5qipbaH3eK2MvldD9ZJWJ78PebMHcbOxSwOr66rMPtkoSrHNG98X4XXbLK XVylnoMYxly+D9S/vOiEd+lkLDxKozjbewaDx2wA65oQX9fAr6xGIubwmRv/V/Or88C4 PGEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=HFvd6fwH; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id q1si14935212jaj.82.2021.04.25.19.54.13 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 19:54:13 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=HFvd6fwH; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:51810 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larO1-0007vS-D7 for patch@linaro.org; Sun, 25 Apr 2021 22:54:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60050) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNa-0007ta-Fz for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:47 -0400 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]:34693) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNW-0007YO-ET for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:46 -0400 Received: by mail-pl1-x633.google.com with SMTP id t3so846688plz.1 for ; Sun, 25 Apr 2021 19:53:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=KAt4KJIdZ2Rn7oZ7gMKlRXoCjHm7a4NbLhrIC4Pyqtg=; b=HFvd6fwHj1g4Yp7MCdvzD9Y8L5ZpmoEWJtxUQrHIKHeRmfzsnL3VhCWTTLrx6Crw62 neDZu9J4daGPUMhsp5qq6oVwDpU9W4L1VgopkY6TfPhZAEDhoJXIqJCdE05v7qlyTvBL fZkQXJVkcOuxgC/e4jNN6jS+Y1Mj5Ym19zqalgDVbChkGhDMW+hc4TUhHvSs/oly6Ny0 ZPrrNmFHqgG264bHju8tg82qTH4ST8jwcaP75ixIY/MH8J0/Q5r6CzmDQt0utv/attBl Ng7X13elyh2swBMSa08/ZF2Y3cjlZVQgPr1T1YnHdmfBzBvw+Il+R/OAahayZYYOZvA1 YkpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KAt4KJIdZ2Rn7oZ7gMKlRXoCjHm7a4NbLhrIC4Pyqtg=; b=bTChE62cy7t1EDqxtu/q8sfLZwmaPvyR4yeRb0IZgZOOhqd32LNWzA3mo0x1XOK/rt u7gvWvDGPiwNkI1jJqhdgzMDcEs8fcfvdFFlhZkW8qC2MWP8dCMRGk2kyC5BEo9xq9MQ MkUhm3b/n4zBXW+yFGOj7eHr4iyxaIkj2tZrQIyufcYHcb3vWBgpOt9sJN7dVXTHHUgQ AWkoubZ3JOxz5kgQPGSC2kGsd9WZXb3jY55p4bhY9YHXwNhSKSG4Zegu+NHBDeyRA+87 hBaHrDtbcBFHJYiFbIEY+LA+GfOP0A1MKCFpZ2omIJ9P4Wo3L9JM3PqZyNAxWB3mLQ9F LMJw== X-Gm-Message-State: AOAM532bAZzVzEew0rmLF3GBUwQ9iCBUeEffyXPA0PoT3gq6zyHXbRXn g5c+NC3PC+Y1bFz36YbdIxVlWfaO0mdlnQ== X-Received: by 2002:a17:90a:f2c7:: with SMTP id gt7mr20634352pjb.157.1619405620837; Sun, 25 Apr 2021 19:53:40 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.40 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 06/25] linux-user/sparc: Clean up init_thread Date: Sun, 25 Apr 2021 19:53:15 -0700 Message-Id: <20210426025334.1168495-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::633; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x633.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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 --- linux-user/elfload.c | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) -- 2.25.1 diff --git a/linux-user/elfload.c b/linux-user/elfload.c index c6731013fd..cd8b81103f 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -663,48 +663,25 @@ static uint32_t get_elf_hwcap2(void) #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 = 0; -#endif - regs->pc = infop->entry; - regs->npc = regs->pc + 4; - regs->y = 0; -#ifdef TARGET_ABI32 - regs->u_regs[14] = infop->start_stack - 16 * 4; -#else - if (personality(infop->personality) == PER_LINUX32) - regs->u_regs[14] = infop->start_stack - 16 * 4; - else - regs->u_regs[14] = 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_SWAP \ | HWCAP_SPARC_MULDIV) - #define ELF_CLASS ELFCLASS32 #define ELF_ARCH EM_SPARC +#endif /* TARGET_SPARC64 */ static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) { - regs->psr = 0; + /* Note that target_cpu_copy_regs does not read psr/tstate. */ regs->pc = infop->entry; regs->npc = regs->pc + 4; regs->y = 0; - regs->u_regs[14] = infop->start_stack - 16 * 4; + regs->u_regs[14] = (infop->start_stack - 16 * sizeof(abi_ulong) + - TARGET_STACK_BIAS); } - -#endif -#endif +#endif /* TARGET_SPARC */ #ifdef TARGET_PPC From patchwork Mon Apr 26 02:53:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427491 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3321838jao; Sun, 25 Apr 2021 19:54:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzjPXeoRNLxMITa/A+A47ZlRzBv3aMAjvEbwNi3aocTyugJ9NMpLGGnWyJLS5bYcE3eJXWZ X-Received: by 2002:a02:caac:: with SMTP id e12mr14124615jap.131.1619405658859; Sun, 25 Apr 2021 19:54:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619405658; cv=none; d=google.com; s=arc-20160816; b=HrgureavS2ml/77O3CEbNNJ96CdGvANCEDGG3B418kL2DnkFT27ja3rEf5EhOUdNof h+XTYEsyYyXHdC7RiFrF4OTjQr7u3UQTKszAPFSaRPvc1BTAROX/hK+rXxpGp9LIuxXc 3+t5yVbs0JVc8gJxogdcOwIIr61xqxqikN6szeItpTWuF7UsvLA7HDjC2g9KXbG3ioPQ OHa4+oKhX0tyAkz2OJBmflgHPoyTziyGSOHves7ILbg6gS75pIJe1FOjqSZ1r4U8Hsb/ B0RebNeGFUrttlWPz5BPGffM5tL3nwcc0yOJbt0H1vljij/nofrj3ZjkxMlydVzXGKmX 9HtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=onhoOryfDgjmYPnzWpW1QpsqON14NNGEMZe0Fnj1Tac=; b=E+2rCyWAJ657tcU265NjBz70s8F3h/ejpK2L5IM5BovEJSe4cVBeRw2/A9JeVe+r60 cHIQ5394Tw3rz7rs9rcYSWC2dYwyuzcBwLYXlWQVe7zjQkHlre1i1XWLq5brv/gZA3jU YUrPK1Jj3cvtoKYeUqtgdt7CUwuldZ8bvt8zsHc1GuzUgOdmEYH5WS2lDWalWg3jYe3I cgsvoY93CC/qH4f31/nUIPoPaC2J7nCnT9dMAJ6MyEKNNde1RP8nLDPcW4fNDBZfLgdb idywoybgh/RJZkutmKyKYHzE0cS3NkNsu4f5soazGuX7CH/RiEB9YfMtw3pUpxWuTTU+ +qsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ijIeKcOA; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id r6si15675334jak.28.2021.04.25.19.54.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 19:54:18 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ijIeKcOA; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:52278 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larO6-00088M-95 for patch@linaro.org; Sun, 25 Apr 2021 22:54:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60068) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNc-0007uC-3S for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:48 -0400 Received: from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431]:35380) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNW-0007Yl-QX for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:47 -0400 Received: by mail-pf1-x431.google.com with SMTP id c19so2086243pfv.2 for ; Sun, 25 Apr 2021 19:53:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=onhoOryfDgjmYPnzWpW1QpsqON14NNGEMZe0Fnj1Tac=; b=ijIeKcOAlU9K4Ao1kbOVtj7oWAWkBFp/2tLT7eaFI3nziMs2oQtWMpVnP9yLR1OOjR 8/LlkK/9hE0SrSNNrUanhaGudofyW8Bz2HnDX1yeUSByc8Kq1GzuGUuvAofxaP7J/92e TV8IPm4dkksY28KCl1246AOCf5QTlZJEsl1vUYGoaa463Ulw0JjrPEFXYDQAfq5Oby0F bpAkOicTbaEFdTARTaBDP9TmGpXdUDfmw/I5Dq9AMP3gzhmunylR+grA8QI5HL14fj6q KHve8+uo5psblfCr34WSN6n5MORsaAqeS1rpHUwxMAyohZHlvWdFAZ1uo3/B4gAZwIuk Ng4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=onhoOryfDgjmYPnzWpW1QpsqON14NNGEMZe0Fnj1Tac=; b=Jb98qEB1Au+/C5cWwd+K+SEqKKuJlJZ33ncmuWClRIVq9rHgjpWClpBtGS+UmpFEqd x5ueAV++xXdMZiLqMwY+bYVXWmbkmJL4fJhhXqB1oe6doAUmLU29dWivl2tflSyscnsh OYXfwnYmho553YWCepLx2whsWXQIZaJU9uRLyRHVzFzVpqe7EBH+DffztioG94Rg4KgR sRLGoqxtKyTbl8LDzhl8tgXSXxaWXx21UuFFDxEfyGH1Rdu77brQnoC52SoQ3a6jrLaC Lv8C9L42bscxB2ecAHp973oVgrjwPOnZRAJ1c+JjTms9xdpgBSIdR+DKgZaWu5blaXmq m2CQ== X-Gm-Message-State: AOAM532XbFrv2D1Dk2Bi713WTxV1T7zFWkHMEeQTGOyid3Y3zMYocHen qWPAQK/KP1TZTNX91kiaNSap/RQEkolxSw== X-Received: by 2002:a63:2204:: with SMTP id i4mr14806611pgi.76.1619405621413; Sun, 25 Apr 2021 19:53:41 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 07/25] linux-user/sparc: Merge sparc64 target_syscall.h Date: Sun, 25 Apr 2021 19:53:16 -0700 Message-Id: <20210426025334.1168495-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::431; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x431.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" There are only a few differences in sparc32 vs sparc64. This fixes target_shmlba for sparc32plus, which is v9. Signed-off-by: Richard Henderson --- linux-user/sparc/target_syscall.h | 42 +++++++++++++++++++++-------- linux-user/sparc64/target_syscall.h | 36 +------------------------ 2 files changed, 32 insertions(+), 46 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/target_syscall.h b/linux-user/sparc/target_syscall.h index d8ea04ea83..15d531f389 100644 --- a/linux-user/sparc/target_syscall.h +++ b/linux-user/sparc/target_syscall.h @@ -3,18 +3,34 @@ #include "target_errno.h" +#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 -#define UNAME_MACHINE "sparc" +#ifdef TARGET_SPARC64 +# define UNAME_MACHINE "sparc64" +#else +# define UNAME_MACHINE "sparc" +#endif #define UNAME_MINIMUM_RELEASE "2.6.32" -/* 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_fork() * and copy_thread(). @@ -25,20 +41,24 @@ struct target_pt_regs { #define TARGET_MCL_FUTURE 0x4000 #define TARGET_MCL_ONFAULT 0x8000 -/* 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 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 } #endif /* SPARC_TARGET_SYSCALL_H */ diff --git a/linux-user/sparc64/target_syscall.h b/linux-user/sparc64/target_syscall.h index 696a68b1ed..164a5fc632 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_fork() - * 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" From patchwork Mon Apr 26 02:53:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427492 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3323309jao; Sun, 25 Apr 2021 19:58:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwV2gu+yh2cAbTB8swoyW5oiqU1VJlmCWkl/Aktg4199D/VDHGqCo8j5omNSrR0QrNNLEKZ X-Received: by 2002:a05:6602:1611:: with SMTP id x17mr12209998iow.65.1619405889193; Sun, 25 Apr 2021 19:58:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619405889; cv=none; d=google.com; s=arc-20160816; b=QArUFYX0A3l3vVzBTNrUkEFlnQsWGqVkFtrofhS63XTSM++tJyTx+C2R5HA8GE5W6w q1oD9uVHAbWbaaJ30znwYF5q1DU+xYxgxtgFD/lBnw1g7YXdTsYF08m8yRhbTn+4fUYz tgHO12O5MbQdDBv7bbKHGTDHlAD3IQwGnlrU2RGh1vHJpZFJd1RHH3HEFFWYgBts84jU 4KxoejOdoRvHtphwYcJXzemrejwsuRPLRQspDhASAJv1cSvisVP/qtGqwZ/UpqdOabIM MbmMsvhgxiSMdfO4z9Ti+QJew7xVbvHag16qZ117UkkgUF3kyajbnaNqnwBiGLCj6uPG /Vgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=1NawdC6TWJEBCTs9JjIuIiWT2xY8OIdl/qnUnKxqfyM=; b=t/RbJu+j7T6WnYb+vWehA/OJmt57kdXazqUHxhuxT3zKrFuadshha6T5R91GlgsSWP p6ZoRaY1Pfaxc/3+aXd2L17wWNZJ6ncVpjRBfW7byIWhZg0uxs6OfHm6gOrjKQ9bcfNm XalsCxJkrZTZhHASg1tIqmKsEloZXjYAy29FZgJIV/q8DI5keek6kKTVc2VaafqYoGlL ya4m2BO5PGIkIUQXCyv+abrUavgmMV7LhzDiqnC5KCJylwGYJjJiLGX58SlNc1wLg6dm vAjhHL4uxjBoqbaUnP1tchKww+OB+r8wsUnVGO0l8D9B4n0hWtifNfiiuMBD72kW2Vv+ ZP2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=N2izx1BA; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id z11si17996715ioq.81.2021.04.25.19.58.09 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 19:58:09 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=N2izx1BA; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:60238 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larRo-00033e-KL for patch@linaro.org; Sun, 25 Apr 2021 22:58:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60186) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNl-0007xp-NQ for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:57 -0400 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]:42768) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNX-0007Yn-Ni for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:57 -0400 Received: by mail-pj1-x1033.google.com with SMTP id j6-20020a17090adc86b02900cbfe6f2c96so4407521pjv.1 for ; Sun, 25 Apr 2021 19:53:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=1NawdC6TWJEBCTs9JjIuIiWT2xY8OIdl/qnUnKxqfyM=; b=N2izx1BAbzpwTwblSKAB7iKPH6bO37vpg9a5+pFxWmpkk8yNHt7Qffkla74hDb8W9e M6brJV1L9x9KJtcxxe3SWtYoykK5bCUHfYlQlaqDHMeZD9Y1OoYfI8KLkpm65Q6w1s5C PEvgBTxfMY/VEgfHkvL5WJ7SftCRCNeyQS30WGCu/VS/XzTYZ/W2DYGwJ0uW32jXcdJr q5v2amlMPLVVgrZqvUWFbThrk3Q3vKsBUA/XETkmDmRZWBlf4NZD9ABmwkqvr8dg8ZY+ M5L3XNccH1I34obFoMEA5oHPIwm91R1IilmuB8e0sqg/yHk5jaU7Uw/XFq4sGRoStEQk qlyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1NawdC6TWJEBCTs9JjIuIiWT2xY8OIdl/qnUnKxqfyM=; b=nZmHamhxazuVm08EC329KHrkshrAlTPkQNdzJpKkfYTrshQHkq5DnuGuCTWsfZnNVE bN3iHx4E7XGht2dlm6u/7hKa5xfuB4n28m2csDeuBjysEE+Zf3srQCfD6Strio/p4nSF IEQ2PZ9xovn6PKrFeceZRdYOuIbiN4rzjBN0yHb86FUdhGBz5vFHDnbwFQJbHKGiKuGC IzGpDHlqPNhymyf1Kidv5iLsBy/XRYc8j3ADcOdq1olVi1h+rgnCZXg+h7r59DyAFNZv ffkB4D2VoI2a5s2y4RB53SPAyyKzazTXQeVrlOsLwAf82u/UQkhdepKmhEVCMYH7rFLP doUQ== X-Gm-Message-State: AOAM531AJF3ULXgcVAitlthgC/WazzWquXIyzfDSriXZZgNNPCcHbqHR HlIPKXyFiroJr2X1q5MipyyY3Mpvrci8Cw== X-Received: by 2002:a17:902:788b:b029:ec:c151:b5e with SMTP id q11-20020a170902788bb02900ecc1510b5emr16200554pll.75.1619405622019; Sun, 25 Apr 2021 19:53:42 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 08/25] linux-user/sparc: Merge sparc64 target_elf.h Date: Sun, 25 Apr 2021 19:53:17 -0700 Message-Id: <20210426025334.1168495-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::1033; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1033.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Richard Henderson --- linux-user/sparc64/target_elf.h | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc64/target_elf.h b/linux-user/sparc64/target_elf.h index d6e388f1cf..023b49b743 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" From patchwork Mon Apr 26 02:53:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427498 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3324654jao; Sun, 25 Apr 2021 20:00:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwC5d63cZM4NbqrmITUyc5f5XvK9h5hQpctUFfCp0LJnOFxFQQcY5i1olEgYUiFjWU5ad+W X-Received: by 2002:ac8:768d:: with SMTP id g13mr14746102qtr.94.1619406051158; Sun, 25 Apr 2021 20:00:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406051; cv=none; d=google.com; s=arc-20160816; b=kDRf2uiGWYaJEPyMQg2vyIhIkfDdNTr+Dto0qVMq+hK6OjFK9QT2Is5CtUTIQa+GNf z/6YkzhtNfDM977UgMaNwINouszelMpQWUxfUmtB2Q6xMndw8Uc9NQlfbnGmibRWlt3B QTq/Z0HKyX7EIPfvt6VFgbKSqKaNYf/665+e+mEUK++l2bkfvGX/QuAKeW2rPsYqMAxr G6SIqnJ7kh94rGyimiSY5xbVzYTsCwj5l3VNT4waH0o1I0tkuYp+9wK659AW1T2/xh2c 6/XsZWD/32aLjVhX/m5F6cb4FcZmuOCnprmovNtB0uqNp1LJMFkxOWGkUQ91iqYUO6gb K6og== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=Roi+8AxKJSMluduFFvE6DucqktBjisHW/x7VH6rXtB4=; b=AfzLZ5WESrBFYR2AKezH8iYRbUSEekEdCq86On2ioW+XaXBtyVLunPSik8Oy8ADG51 Sdg2WvOL4oVVwNQmSIN4/KaoxuS/wIzvbxr7OOpca+OcSP0DpGQzElJ3TLN5/klekVMU 1zkjPL42ks1k/P+YymLvu02DmZKQgSUblgRFYcOlLc1cYraC7VAZ9aJjt9Y7nmFXJJmY cF4CYh7SIuCw2iVPU12q1nFV3bZolIxDlMCpmgaK0sIxDr2WfLzV8qR4yoeNwLmQzw0p n9OaMT2qiMHp28OfDcTYCHYbISr9DMfsIjYD4ioi73tFw8tmJOaD3uFt6D9dUfn3D3cd 6RGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="VCfdDpK/"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id c16si10386232qtd.302.2021.04.25.20.00.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:00:51 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="VCfdDpK/"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:40840 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larUQ-0006aa-Dy for patch@linaro.org; Sun, 25 Apr 2021 23:00:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60130) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNg-0007wD-6B for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:55 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]:43832) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNY-0007Z1-C8 for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:51 -0400 Received: by mail-pl1-x631.google.com with SMTP id v20so869694plo.10 for ; Sun, 25 Apr 2021 19:53:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Roi+8AxKJSMluduFFvE6DucqktBjisHW/x7VH6rXtB4=; b=VCfdDpK/9KlNXWdA9o9z0lfb/wQaJwBImhnpobIA1f2yDDdwhBgNf32DxY06ojK8Sf vvep7+cbaJpimPiWFZH7Ad3LzFzAvV6mQrFNTryWOUoWXI4sLtloeEvfBKt9EmBIMeur S8RDGH7kch64o5PPmOeB/ugmBS06EbEe20OeFQoOFJA4lwSJvAqBfJ2boCYM/My/RhN+ TH37wZQvgOlh8+Z5muTFvI6tjbLAryNwJOMlonp/9tpsuwMC8Y8RfevFNb1SCx2AF/9C NA/DED2kTukSmkPKhqzIHKzkprDIPPUoLNIGV5zhRF4VT9OqHnD4AGXJ0hL2FwrJYIha lPWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Roi+8AxKJSMluduFFvE6DucqktBjisHW/x7VH6rXtB4=; b=LU1h/PX5RQoLWvWOht4w7i48sPXtzQJmuJCnwfYOqZTexq5+qHnQaV8Ga4lv+n9cg7 XjKzQbDbpd74+57cMLPHN+J/OfVEgcK7vWZcM8q7bZFXM2BnhDKKWNHIIjTt+G1e6q0X AwnAiNR3/y5IQPU0sH+GWi5c4S/OSp4uLh4W/yvszDFxYvM/fP0MERSgt+qErFZM2O27 ywehwyVyv5b4A8A0feqlwcn5Zl6YUgiVGYqS7C7GYHdkKTwDOjLPyjdk5rwudMKHcaWy ykGvEdSbYbn2ICF+uykI+6I+SEwvjnioWGO7uCv8ZDuj1FYXvrHvqv7tqOnNFG08cwTo usEw== X-Gm-Message-State: AOAM530Af9PvEqJ1HOeiC2tLajpCX8dJvf0oLjWRiXMmkRg/lSUrsAiz 3onJLkqSz0JosTpXfBO6H/x0FIWT4LUbJg== X-Received: by 2002:a17:90a:850c:: with SMTP id l12mr19530577pjn.224.1619405622678; Sun, 25 Apr 2021 19:53:42 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 09/25] linux-user/sparc: Merge sparc64 target_structs.h Date: Sun, 25 Apr 2021 19:53:18 -0700 Message-Id: <20210426025334.1168495-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::631; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x631.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Richard Henderson --- linux-user/sparc/target_structs.h | 36 +++++++----------- linux-user/sparc64/target_structs.h | 59 +---------------------------- 2 files changed, 15 insertions(+), 80 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/target_structs.h b/linux-user/sparc/target_structs.h index 9953540759..beeace8fb2 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 == 32 - abi_ushort __pad1; - abi_ushort mode; /* Read/write permission. */ - abi_ushort __pad2; -#else - abi_ushort mode; - abi_ushort __pad1; + abi_ushort __pad0; #endif + abi_ushort mode; /* Read/write permission. */ + abi_ushort __pad1; abi_ushort __seq; /* Sequence number. */ uint64_t __unused1; uint64_t __unused2; @@ -40,22 +37,17 @@ struct target_ipc_perm { struct target_shmid_ds { struct target_ipc_perm shm_perm; /* operation permission struct */ -#if TARGET_ABI_BITS == 32 - abi_uint __pad1; -#endif - abi_ulong shm_atime; /* time of last shmat() */ -#if TARGET_ABI_BITS == 32 - abi_uint __pad2; -#endif - abi_ulong shm_dtime; /* time of last shmdt() */ -#if TARGET_ABI_BITS == 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/target_structs.h index 4a8ed48df7..cbcbc4602a 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 == 32 - abi_ulong __unused1; -#endif - abi_ulong shm_dtime; /* time of last shmdt() */ -#if TARGET_ABI_BITS == 32 - abi_ulong __unused2; -#endif - abi_ulong shm_ctime; /* time of last change by shmctl() */ -#if TARGET_ABI_BITS == 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" From patchwork Mon Apr 26 02:53:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427503 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3327148jao; Sun, 25 Apr 2021 20:05:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxR7P806C5AcA/WuW6QwPZDfeJcDYDKWBwy85N0ftH6oM6veootTm5ztRhJAYgQ52L7pogR X-Received: by 2002:ac8:574f:: with SMTP id 15mr14221898qtx.50.1619406307399; Sun, 25 Apr 2021 20:05:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406307; cv=none; d=google.com; s=arc-20160816; b=0TiuxoZHcuq1bk0TqHljrmopdZof9dHYHhOueVq2sBfIas3GvJdNXpzLKKe+2w9dhR LmZy5EOmmIocjEtYttHmjrmlxetVgHGSWI+WuNDIp/BeQdtgOBEEiQ+47hbwhrCjdQGP EZluYWZVmDBnkFBkesxASfheO/huZJhH0hBh0BWrpjNE7HMDjgDwU5c6iMbN1JysnSx4 A/L4VeVDz+dT52w2yh6Y3KKsmxl/nHNs+kqabZzm2Xw1MqiE2P/WJOJN3+NV2FYR9VoY pcuAJRoaL5mCpaYAAKkUlMR68+hl2O3TBU6SjXr3JNeHOik6mKcp6WA61G3B5d9DE9dl 7LYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=c7NwtIs6dyH2rnCYlnE60ax9jB4WmlbBbS0fa75+ejo=; b=FcAL1Ww/cEMG7TN1dytsKFc3M/ZsL2RPxcHQxGMaiT6w0hXS2p+FOh6YX0ZnCG1Lmr NDKo6hvFTVyhZAXOH4Pitoc0HRRFjILOgUi/rjmJwqGEt0SDUCFvcRcRDcRAZKkQG9fN RGSwVWzcV1lPh1s6ofNo1qc34u8PZ+X/oSY35R5Bxb/shSUAifWmhDWBtpqCPm2xTWQO krs1exVDisrIfgftTLWUrQQwfSylD57zeaNAVpBPgycPhmW6RvzlOUstZYlbqKODiL6R m8GfTPybR6puFpoRe8B/0ron4u2xZNheKejCw2J9TEPEJxyaB4FVmFeU9QDr8EBN/HVR Dvjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YKGLRc8n; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 10si10027935qtt.159.2021.04.25.20.05.07 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:05:07 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YKGLRc8n; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:52346 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larYY-00039W-OQ for patch@linaro.org; Sun, 25 Apr 2021 23:05:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60166) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNk-0007wv-2U for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:57 -0400 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]:35591) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNa-0007Z9-75 for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:55 -0400 Received: by mail-pj1-x1035.google.com with SMTP id h14-20020a17090aea8eb02901553e1cc649so2184097pjz.0 for ; Sun, 25 Apr 2021 19:53:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=c7NwtIs6dyH2rnCYlnE60ax9jB4WmlbBbS0fa75+ejo=; b=YKGLRc8n8Z9Niv69rwW2OEXtLD3e2tRvRPFxoLLMoel2mmOgo5mT6ykbptwxWrbHwd joWqVeGk6R6VZC8nAJjylIaRuumZVxRUnCvoa1mkEhHB1LxWvaa/aVRbX4e/SeB1jysb ssQQIxPgPy9HKZfVCGyQctih6qqhB6yfcI7+4iOiExPRpyBQWKrsAZAO5gcLf/btXCpe Ex1yHu4Agr3laICPpc/N7llXJJ5MRpBbzhpUMpSRpF8QTWTTWuWJSDpZ2sBBBdIcPmqG C19Np//LEcjw9QIjRhQtmd21QIGxU9CTMFYE/ED9ho/EygLfZQeXe+K86H6Yk0M1eKZy 8XZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=c7NwtIs6dyH2rnCYlnE60ax9jB4WmlbBbS0fa75+ejo=; b=Wts/390dUDXwc/2yGw7t2RlS1LNmrh7wg4K8l8xUCfwa6t4H09WTMfjX0pVCnXg+Pw 3VKQNeryV2k+uB+GsFvkVdzdzVEOvSUMixPlkdYT7fvzBTRmiSX6WYh7x1gAf+mxvdpD YqKDy4fYdnkgcRW67b6aTqg8Xm0g5eKXCZwXk9YcWty1+KKBTn3ta9Ja1iklEG7Gylv6 bzNIn+djmvzGIE0P2fKElqyMbLiOoEbmeoY6fz8egKjDaOQy4MUGNqkumJnmQnI6KBJU 4/hAiRUR+607FxRNXlECW9cJqyy1nQws0vBIt3GdGJSe2zaPpDudgqWRPQo8qO7gbAsx AYhw== X-Gm-Message-State: AOAM5312BofwL3qoiagOz4Ijli/zuaP8gzpMnjQHSG7EpSy5sZtkohC6 HrSG2h/YtGdWz6HT71VSiYbHY2I899lD5A== X-Received: by 2002:a17:902:e809:b029:ed:258e:77d0 with SMTP id u9-20020a170902e809b02900ed258e77d0mr4080896plg.55.1619405623298; Sun, 25 Apr 2021 19:53:43 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 10/25] linux-user/sparc: Merge sparc64 termbits.h Date: Sun, 25 Apr 2021 19:53:19 -0700 Message-Id: <20210426025334.1168495-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Richard Henderson --- linux-user/sparc64/termbits.h | 292 +--------------------------------- 1 file changed, 1 insertion(+), 291 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc64/termbits.h b/linux-user/sparc64/termbits.h index 1ab1e80db5..54ddfee3ba 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 Specific */ -//#define __TIOCGSIZE _IOR('t', 38, struct sunos_ttysize) /* SunOS Specific */ -#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 Specific */ -//#define __TIOCSLTC _IOW('t', 117, struct ltchars) /* SunOS Specific */ -/* 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 Number */ -#define TARGET_TIOCSPTLCK TARGET_IOW('t', 135, int) /* Lock/unlock PTY */ -#define TARGET_TIOCGPTPEER TARGET_IO('t', 137) /* Safely open the slave */ - -/* Little f */ -#define TARGET_FIOCLEX TARGET_IO('f', 1) -#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 counts */ - -#endif +#include "../sparc/termbits.h" From patchwork Mon Apr 26 02:53:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427506 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3328386jao; Sun, 25 Apr 2021 20:07:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx1oe0R7exW4UzbG+BcI/1qzgqT0bKlALuYrqZNPn3INKQYgfn64nd6phT4Up+4DRm6SdL5 X-Received: by 2002:a05:6214:a72:: with SMTP id ef18mr16044772qvb.5.1619406459858; Sun, 25 Apr 2021 20:07:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406459; cv=none; d=google.com; s=arc-20160816; b=u7SJG1UZgkIJgqO8OXEFNZRgj+ShRztNIjEtprqRH7i9lwBpFDDtVWJ+2gg6fITccn zq5AOYEaFBhC+UIj0riZ5RhrtrgVfosyR5ItXd9pr4yCm9MUwXcfSAHR9ZIF3rCU44Y6 R4nUnfekgTRvnhGE1zoD4iEKa6t5Zo1pySON059IMH5duiKkwXwmATuiRnW2aHHPjYna pmudqLLevCMAcvPOHDQBudizkfhxZemxjbGKwE8TaAdvCSy0mx6dzEjg5kP2t0195tpd dWcW4itlTY8fWEYkVbzp+xiH7qpgkyHOrnST9aod67t2Xmlg3xtpID9PO5RlNCImdh5S SPGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=VAa/DceA4jWRoC8aZModYQ61zc9N0GvkdWKoxgaTy+Q=; b=spuHtGSiSUgRDYVDtdyKzeZ4+O3/0CdkwskT7K4XmDxKle2BGXhLKJOpqwcIAc7HMa GM+tmS0tcWTb88RkmsukbUtDsjxnel4aO2G/gd+24UKDgcQSRuhlxYlw3eQ5wiQ/HyGO ltDGJzwEyBxQZc4m7312xyTfcfHJvB8SJtYRYNoJNbBeiexOZGni1ta95/yrrXNmqkPY rI68gjXwJZw1igbrFkmRQKsdqFu4GovVGb5GcpahPsVTVVSy5ZjG90+kUkZ0dckvlLlC D71FOSYipJDaA+FvsKgUmFDsAcn57VBHZNeNI/o3/cSiFwaJEo0au8SPSVNZFA55iQcM 12JQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=EGl9gAHo; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id w9si10391779qvr.37.2021.04.25.20.07.39 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:07:39 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=EGl9gAHo; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:57414 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larb1-0005Il-4M for patch@linaro.org; Sun, 25 Apr 2021 23:07:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60206) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNm-000814-Si for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:58 -0400 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]:38572) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNa-0007Zr-7m for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:58 -0400 Received: by mail-pj1-x1036.google.com with SMTP id f11-20020a17090a638bb02901524d3a3d48so4292784pjj.3 for ; Sun, 25 Apr 2021 19:53:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=VAa/DceA4jWRoC8aZModYQ61zc9N0GvkdWKoxgaTy+Q=; b=EGl9gAHoXNmUrH0lLhDONcwaiWKjOuSMfJMuAC3BDVFUp/qAsFT4UnK/vKuHE9Vwd/ DmAl8DxVOBtQbfal/nfNrIdmOIapRqxf9di59CvbevD796S/rZ55wUPQAgTNtjAgbuGC HT9WAQFScEAUcop38sO5tygnzV8aumPfOiKkONJzqXJIa7Rz4uROhlj7HXgN+94XQ0Y5 WnGsMFCLCGFwh3mr5zMuQAmJzndeZrPYsMKQgvoyCu4RiAJmIlAy3JKmCyl6ZQn/NH9s tlQ0/y6vdCJOOqDPLa0/iGjeB9lfD41t3UPbzVIrbbOiTel2KmyDeT+2PEyrsSs10Ywm RzTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VAa/DceA4jWRoC8aZModYQ61zc9N0GvkdWKoxgaTy+Q=; b=fX1sOa7amls5bbKavdw/GSRnxJQJGr+sHNSy67JUUKrrF66MnNiTDDzPNkLJnhhmRl mg/tVg44+cfHnWeDn8lvObqOQI6GkceUA7FfYbcevU85O4DezdDYg/mY1cBMguhMBSJm yBnHKUaQxkxv/63FbygQRJb/2k/rCkH3YZvO8ZCoQ2vQoSYiQDnicdHTKkE99jlRmof1 400jOTUv1pfyKXnF73TQIiWRJXWdHev6/p3wKW0bZrSihMQVwmOp/4WXCJarkIH6SZ47 8LTxJd7Ba6MhguKTnR7/ata2uHyaNrPwuyd3cRmjVfgAL8NEzvq2kGCS3iOKQeFQXa6J lX4w== X-Gm-Message-State: AOAM531O9v54/eezxachIMiqIPIR4+OPpm8anlHNDc1om9BhAVD+BBBX KX5v2zjpP3qZHX/1H4VbhTLuvXA5OAuu1w== X-Received: by 2002:a17:90a:c788:: with SMTP id gn8mr17592419pjb.60.1619405623983; Sun, 25 Apr 2021 19:53:43 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 11/25] linux-user/sparc: Merge sparc64/ into sparc/ Date: Sun, 25 Apr 2021 19:53:20 -0700 Message-Id: <20210426025334.1168495-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::1036; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1036.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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 --- .../targets/sparc64-linux-user.mak | 1 + linux-user/sparc64/sockbits.h | 1 - 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 - linux-user/sparc64/cpu_loop.c | 20 - linux-user/sparc64/signal.c | 19 - linux-user/meson.build | 1 - linux-user/sparc64/meson.build | 5 - linux-user/sparc64/syscall.tbl | 487 ------------------ linux-user/sparc64/syscallhdr.sh | 32 -- 15 files changed, 1 insertion(+), 572 deletions(-) delete mode 100644 linux-user/sparc64/sockbits.h 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 delete mode 100644 linux-user/sparc64/cpu_loop.c delete mode 100644 linux-user/sparc64/signal.c delete mode 100644 linux-user/sparc64/meson.build delete mode 100644 linux-user/sparc64/syscall.tbl delete mode 100644 linux-user/sparc64/syscallhdr.sh -- 2.25.1 diff --git a/default-configs/targets/sparc64-linux-user.mak b/default-configs/targets/sparc64-linux-user.mak index 846924201a..9d23ab4a26 100644 --- a/default-configs/targets/sparc64-linux-user.mak +++ b/default-configs/targets/sparc64-linux-user.mak @@ -1,5 +1,6 @@ TARGET_ARCH=sparc64 TARGET_BASE_ARCH=sparc +TARGET_ABI_DIR=sparc TARGET_SYSTBL_ABI=common,64 TARGET_SYSTBL=syscall.tbl TARGET_ALIGNED_ONLY=y diff --git a/linux-user/sparc64/sockbits.h b/linux-user/sparc64/sockbits.h deleted file mode 100644 index 658899e4d3..0000000000 --- a/linux-user/sparc64/sockbits.h +++ /dev/null @@ -1 +0,0 @@ -#include "../sparc/sockbits.h" diff --git a/linux-user/sparc64/target_cpu.h b/linux-user/sparc64/target_cpu.h deleted file mode 100644 index b22263d2db..0000000000 --- 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_elf.h deleted file mode 100644 index 023b49b743..0000000000 --- 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 053c774257..0000000000 --- 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 6a7d57d024..0000000000 --- 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/target_structs.h deleted file mode 100644 index cbcbc4602a..0000000000 --- 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/target_syscall.h deleted file mode 100644 index 164a5fc632..0000000000 --- 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 54ddfee3ba..0000000000 --- a/linux-user/sparc64/termbits.h +++ /dev/null @@ -1 +0,0 @@ -#include "../sparc/termbits.h" diff --git a/linux-user/sparc64/cpu_loop.c b/linux-user/sparc64/cpu_loop.c deleted file mode 100644 index 4fd44e1b1e..0000000000 --- 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/signal.c b/linux-user/sparc64/signal.c deleted file mode 100644 index 170ebac232..0000000000 --- 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/meson.build b/linux-user/meson.build index 7fe28d659e..9549f81682 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/meson.build b/linux-user/sparc64/meson.build deleted file mode 100644 index 9527a40ed4..0000000000 --- a/linux-user/sparc64/meson.build +++ /dev/null @@ -1,5 +0,0 @@ -syscall_nr_generators += { - 'sparc64': generator(sh, - arguments: [ meson.current_source_dir() / 'syscallhdr.sh', '@INPUT@', '@OUTPUT@', '@EXTRA_ARGS@' ], - output: '@BASENAME@_nr.h') -} diff --git a/linux-user/sparc64/syscall.tbl b/linux-user/sparc64/syscall.tbl deleted file mode 100644 index 4af114e84f..0000000000 --- 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_sigtimedwait_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_setaffinity -161 common sched_get_affinity sys_sched_getaffinity compat_sys_sched_getaffinity -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_getaffinity -261 common sched_setaffinity sys_sched_setaffinity compat_sys_sched_setaffinity -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_tgsigqueueinfo -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_handle_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_readv -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_sigtimedwait_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/syscallhdr.sh deleted file mode 100644 index 08c7e39bb3..0000000000 --- a/linux-user/sparc64/syscallhdr.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: GPL-2.0 - -in="$1" -out="$2" -my_abis=`echo "($3)" | tr ',' '|'` -prefix="$4" -offset="$5" - -fileguard=LINUX_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=0 - 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=$((nr+1)) - done - - printf "\n" - printf "#endif /* %s */" "${fileguard}" -) > "$out" From patchwork Mon Apr 26 02:53:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427500 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3326096jao; Sun, 25 Apr 2021 20:03:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyix0QQ6+9OLgMPSmGf2sJ0a1QlPlgzOKZ5qWk2go4t7XruTHZR1xrCS9BUWYcEutnQCJ8c X-Received: by 2002:a37:2dc1:: with SMTP id t184mr15477278qkh.379.1619406191543; Sun, 25 Apr 2021 20:03:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406191; cv=none; d=google.com; s=arc-20160816; b=WOrpKsHrX35GFWZ5WQFNPFtrOYsK/fnmgbBepZ7il+b6clEfUskHSZjI1SmlA7tpDv YAsJajK5uuqCwWsVs9S/g+eFwiLSya3zwhUjoKNyhwKg+n0SQr5EIr8qPItRnEAl4ARM wiLLysqNYEfCORhw3Bna1v4mcAZBEeFyndBRxP/4P1bI1qT/z4WgKpHgjfUYCdy4qGvX sCUKsulR4uy8ovK+B0jLG7XCdegaUG5dfhV5C38xdKpO2twK+ejl533nCMKKQfl3yZPS WgokIoRVfGAaH00wIqYN/DieVNq5jSI6rRyFA0wlp4zvmVqr3Ej5BkSxcS0mc/89x8wu nDyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=r4MugmCP+rYN14B2Da3yFyexQDs8Hm4TBDvsge9u5iA=; b=m6GUdCxGKyN4uAcpQNXX3RvubQD9TosGdFYbu+cfFcx7lvTyKC7YABqVjurOM+yQ81 /mx55L3L9t+wSrPNGuORX7z/d1X2yy05n8t5abq894EYddE/LNB1IUwIhBpqFWrcSOX9 EvukAicWaqNDwVwEUINStVRV+jrKQ2fzDf3Ut7LK4IDjUJsiIQCYOv4E8bvuYk5MmBTR WaIUUDodnAL/0xFhbgz1ZwVzbzwwYoruhRexC4UXW6SatNc9qDObkdgOP+AemYljqBr4 L6QBihiYq4bszBxDYHJlzfb2xtokVWBgjhi1QNNgLhScjV/X1ULMhTJT3X0bC8qSyEHM P01A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FIUYtMov; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id i2si9730937qti.92.2021.04.25.20.03.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:03:11 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FIUYtMov; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:49088 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larWg-0001nl-R7 for patch@linaro.org; Sun, 25 Apr 2021 23:03:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60176) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNk-0007xd-QC for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:57 -0400 Received: from mail-pf1-x42b.google.com ([2607:f8b0:4864:20::42b]:36631) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNa-0007Zt-7y for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:56 -0400 Received: by mail-pf1-x42b.google.com with SMTP id c3so19200388pfo.3 for ; Sun, 25 Apr 2021 19:53:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=r4MugmCP+rYN14B2Da3yFyexQDs8Hm4TBDvsge9u5iA=; b=FIUYtMovEa3pVvJCv5POsIdxZbt6Rt1cI6T6wphqSkqfocmeBc1yBe5lwp9f0oEwx2 LumYrcnSdiRe+rXAPpoaA101XBRYB+L9XPLnHYPloXVrSiXCvOXiQHq7DXl8NkQ4MfoS kL8RJkte6je8c4UXbf+DlfpxVPbzlmY81IX3rLonIkrY15j70J5Xpy34mNSmVKkwCTID RPAEwwgMFCLpDJ6BSDUIl/V9WrE5nv4RmILs/0hY2YiEoq9D/JmUYTdOepKFru1SqL9w TuzQo5ix3PNpEdCu+MJGzyIb1yok53Go1TdR5TBMVbOWYMHH6mAV8lODq1S8jZP0se1U 8rkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=r4MugmCP+rYN14B2Da3yFyexQDs8Hm4TBDvsge9u5iA=; b=G+maOBdOfT8BGxlSy1rPp5NQZcRJ7xt7wjE3vwPT02KEphOnRIH9hcs0sX9/Q7rhgR UZvq7aoKaILqpwgP+KQQdTW4Iq3U/iJh/AC0QsJq/owVovn+9DIP2KIY8xxteeqW1gR5 pNwCaYckk4UQmLQwWPcTFydvnN0jtGfFjQtW2BBGNxbrbNgPXdyHaJpYkPL0zjKgIfmp 8UNeDCTbHYtAYNIbcO7mc+kxFJsQ5NcIwTgf6Ok5w+SLve67dTlszK8heFRbJaW3WWEV QvgJoyK4jU3fyoY++tdT1p2ruiGSRyygjGH8hAvJyFiLG2R7Ec168KRGV8B+ATpzrpvc auuQ== X-Gm-Message-State: AOAM53351iNUXpMEYv0/3Je2cLLu8c33lm66j8qLkDaE/fQT2DMaVGAZ dDWNCnkH4TJLuY7k4fmjy29SXmB9GL7Fdw== X-Received: by 2002:a63:3c2:: with SMTP id 185mr14846041pgd.26.1619405624527; Sun, 25 Apr 2021 19:53:44 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 12/25] linux-user/sparc: Remove target_sigcontext as unused Date: Sun, 25 Apr 2021 19:53:21 -0700 Message-Id: <20210426025334.1168495-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42b; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Richard Henderson --- linux-user/sparc/signal.c | 28 ---------------------------- 1 file changed, 28 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 76579093a8..3d068e0955 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" -#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]; From patchwork Mon Apr 26 02:53:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427507 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3328462jao; Sun, 25 Apr 2021 20:07:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyM4pi1YO96Q4ry3DX66vEkCUHjcd6oxaEgbP8SHk/KtG+zBMIsXdrpp3uCy4AI9E/n9jRI X-Received: by 2002:a37:ae04:: with SMTP id x4mr15525228qke.245.1619406468586; Sun, 25 Apr 2021 20:07:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406468; cv=none; d=google.com; s=arc-20160816; b=E2zl7Iow8LZ4FN/81L17n59f1pTXMuWjRZ+VtlFq6z9QYTxQSprRGaOtBaWF3qx4AX QzPy2oONYzQCs5K3CAI/KWAz8V2YuuS9nc696rYRkHzs+06hxuhC1AqKiMhIbOc1yhsP h0A3qDd5MCvTTzR5AJIlwDxeWJqjoo/tEIc0cawzHjWxEkrLI5smug3DEC8pyFe5yTIm 3rEzbY5InNkByTb43fbeV4hZ3dX3UFe5WD0OpzjsgL98utmgYNUk200/cNclogN5yEwn JVQ0Aqaoy86DQb4Z9KE8sTwYmBYWPWnM0J3K02nDbG9IfnUY36GNjIZUhFaSerbUgsSi /EDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=zrN3ZTuevcjI//77lMPrhP3wL1+FbaSyRflhGtu0l+U=; b=re9uy6C0RoON6NSQAdkHmrm3BJUsaXBGfl8d9hqWZ8GENfjrbg/InnI+opJGLqgE7s cQHThfMG1gyWr/CZEvp5VUxn44TjSPhNc5fNWO91rTWxK3PguUVzOLlT4K1RX/gtFbjP KVpY1kALZVNj2+OIUmk8ZxMpMQJhGk/q2gd6ajO5Oy4j4B4I9JTfavyxFi9Pg3mPUx59 bASOxWIoxoPl0cONurbgM1GxOOjJjQt7Yk5zVcUSvDnWxQisFzm6yOAEFWq1LOTWkHD/ ubIZTLLr8Vu9GRNjGiC8AOh+FW7kFer2kuj+YE6S5Skd0WKUjnrWhEGAG3g83IQummxD tN4Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YvJlstfX; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id g1si10261183qke.200.2021.04.25.20.07.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:07:48 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YvJlstfX; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:60746 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larb9-0006k8-RA for patch@linaro.org; Sun, 25 Apr 2021 23:07:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60232) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNn-00083k-VO for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:00 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]:33442) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNa-0007Zx-94 for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:59 -0400 Received: by mail-pl1-x636.google.com with SMTP id n10so16989544plc.0 for ; Sun, 25 Apr 2021 19:53:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=zrN3ZTuevcjI//77lMPrhP3wL1+FbaSyRflhGtu0l+U=; b=YvJlstfXBa4Wb1pO6T3wjyZivNeLsnJMZPdjojEmObFLXa4NFwjize8d3AIXWM+dCi e7V3Xu5mFzN24l34B1rf7C9I17DNAuk9eRqr3aHQWa7vJl/03ev0igkZHVAqSpyIkrby zUeKBXICmW/W2qTjJDSXBN3XlNQncvu3vURaPEwjFXlVgrtRKsxWUhkn3kazt3nkTdNW 8+YIlcVRP2EaL7KaZGWQ73QTtyCPBKHqVHJ4P/BJe+hpYRhCkIQOX3SSKbxwLq1wVn5o mDI9FnUou6oG73VJrZuMt6CQ72e7Bilp7FRzsf2B8v4I0qExclRchedimYAD82o9O10s 59dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zrN3ZTuevcjI//77lMPrhP3wL1+FbaSyRflhGtu0l+U=; b=Zbfb2l1LiFSf6UOl5hS/2KoTablBL9E0C+mFsCTEozEY9t4tE8Xee/QnZXX4YAmSYB huq/ZY3r1FAvabuogOOTsb5UR1tOzDKVD5B7lf/lxevuS15cRTUbWJrQLka21G+4sQwO b0MCLhurADhw6LsvCmwTCeDjY/al6CXZ0lpos2rp9mFsmKz6bj0q0TbwgKRyGHb5qwZk kLCkRI32pzx/Odr9nlOcyAhcJp2ECpa1OJA08ibJKAtfBqsyDar9ohBeycfiVS04dJqv vDtdz4/55EuLXNe4hIZ3bYW9/9p9F08PPQ9qlo1sm+1RzrUCf8ALZymO3KNhe1oHK39E 0IVw== X-Gm-Message-State: AOAM5323/166RwiNonCZFkyx5PyFfDi+ptKjdTxcdyswN6a6Pg8F/1DE 634WswRMI7JNM5X/ffbGzjkqoDNzcq16JQ== X-Received: by 2002:a17:90a:7c4b:: with SMTP id e11mr19508095pjl.151.1619405624986; Sun, 25 Apr 2021 19:53:44 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 13/25] linux-user/sparc: Remove target_rt_signal_frame as unused Date: Sun, 25 Apr 2021 19:53:22 -0700 Message-Id: <20210426025334.1168495-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" It's wrong anyway. Remove it for now. Signed-off-by: Richard Henderson --- linux-user/sparc/signal.c | 11 ----------- 1 file changed, 11 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 3d068e0955..29c5e3b0c0 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; -}; static inline abi_ulong get_sigframe(struct target_sigaction *sa, CPUSPARCState *env, From patchwork Mon Apr 26 02:53:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427504 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3327946jao; Sun, 25 Apr 2021 20:06:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx8gPIsMAkAG09KE4LkV/nl4qEyW2aY+VwhjCn9FULglbRyx0ZKEEOgIUgRvbZknNxgDo7B X-Received: by 2002:a37:a7d5:: with SMTP id q204mr16052723qke.23.1619406406580; Sun, 25 Apr 2021 20:06:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406406; cv=none; d=google.com; s=arc-20160816; b=hi/2gGwnaRbkqYMIL7LN67xkVINFsJLc21Pyi1Nhsec0g1lscRMZ3uW9CzRcerEAKm xSlti2rlJMbWTWaRufGSY+v2nvPEsadmriJd7J1vs/jtQtLksUY960sv9X0q8Jrh7fJg GyRxkJlZpS/mkPuLCECjfCHGo4oIcNRIDw3DXJnxjiZpGsozPlB66RwCUdEAkvHE75mj 92O0Pjx8HZgP5rIFoAJwFkMpvMF5HT/774DG9+vmTetaJPzbr4K0ztOYpa+vBFJLYltN nLTub3lx5jOjsTPVwtsjm2Tuz70wTZxk1a1BaP+tLckyE0/4WwcIvCnmazVDlzRJHJjd OXBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=zrmei2M83kWQ7UG3ZlvrhhKftuKLYs48AQkSQjuWBHY=; b=RpKxFjBP46kJZT1AT9wsTIyiUQHeuTMvl+/F8g7Y3dhreR90Oxzp+2c0oVqSXtQdH6 CUOyzSep7Ux/xa5ZeKLi05GcYZNLvvUI1aSluUEX4MveLmtMDH6PRql07HDAQjMMWQut nJyK/ymay7ma6tjPO+gls6p/pK8dxqMAtMR2sPL/27yWE3syRfvhA60nQHrjv7eiko2K Ea3uoPAfW3sPaVdHO5ISHSjm1DUUZezGfbrcl1VLnvHUKzKr+8K+NL1K4Pen+hROKtqi nLk5anbLuReZ+T4HIgOfDsB3PSLiJcR9ru11QKEu2WLYeWMTDGzSo+V+zkbQTz4hCAeO yDLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=nUhwKhej; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id q9si10311498qtx.140.2021.04.25.20.06.46 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:06:46 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=nUhwKhej; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:57526 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lara9-0005Lz-W7 for patch@linaro.org; Sun, 25 Apr 2021 23:06:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60208) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNn-00081V-1w for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:59 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]:34480) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNb-0007a4-1t for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:58 -0400 Received: by mail-pf1-x42c.google.com with SMTP id 10so2559430pfl.1 for ; Sun, 25 Apr 2021 19:53:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=zrmei2M83kWQ7UG3ZlvrhhKftuKLYs48AQkSQjuWBHY=; b=nUhwKhejJgP2FXJ4Ww49yduznspzJWPVXlrht/9KZ012b3QBc7BOpUqsQIXuJ05+20 qc/pt1tk8sVIbRXWemk0l1MmHozlBoLbes+dOZipoiY5EAYlk/5GSHu/3mPfSlVX8HT0 Eig+di6vv2rrmxqyvaqcb3ZwDuAVeDTGCMIExljJMKbOrkwPmL8gc9WlV3viPsSzMvQt v4AUxlT4K1ui+UmFsLq/mABuym/EXKOO2y5Y3Q07nW4FGSv/8tiBRTwHW4N/YXvuHpAy cA3pcgsoim9S6RffUhVxBZ2r3ftZjPVSWev2MRhrrVcfhnL1d8saUEc4ReWTPpnGZ1kw KKAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zrmei2M83kWQ7UG3ZlvrhhKftuKLYs48AQkSQjuWBHY=; b=kJ1NmKcmVlwKymWJGFGbhNe+GB3qc5pBGsCfL5i33GHkHoVGav/kmNU7NBAp8ebY1O p+puFY1gQBU2gK8loqFSwvZQd00FNNpnc64ip74VysZrIoJ/i1DZB9LhqqB1euUthI38 2LFv70WTwBdapzcYlPForuxXt/o17iogb+bP0xmh/qeWZDsDKh0Zpa4h0kkvf3UFuy36 cKa5lUKJUA+NPhyMae6bi6B4781MbvruqU57ezpvj4NS3mTyvdhrRppPYrJi699RNS05 d+ss71cpAycQBNlttk2emRwZpbMCdO2vuxglhoHKVmXb0GPPA4TotvxLuBbpu3llSkKi Sgng== X-Gm-Message-State: AOAM5316ZjL2bUH7NE/O9WL5nAMxE2+DfPcLb+UFV2Dh7r/P6WmbX5Fw 5kZ+KdB74tx6dvyt1Ho3VIEsew/vtUF0Tw== X-Received: by 2002:a63:5503:: with SMTP id j3mr2943498pgb.256.1619405625633; Sun, 25 Apr 2021 19:53:45 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 14/25] linux-user/sparc: Fix the stackframe structure Date: Sun, 25 Apr 2021 19:53:23 -0700 Message-Id: <20210426025334.1168495-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42c; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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 --- linux-user/sparc/signal.c | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 29c5e3b0c0..3474098641 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" -/* 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]; }; typedef struct { @@ -56,7 +66,7 @@ typedef struct { 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, } for (i = 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 = 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; }; -/* 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) { From patchwork Mon Apr 26 02:53:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427499 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3325507jao; Sun, 25 Apr 2021 20:02:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyOUTPWhWxzHPArqoj3zW11I8AC7Xixbht/N/ywjPnuCg2ogv2dSK4YkYutvUE6ElRYIr1u X-Received: by 2002:a37:9206:: with SMTP id u6mr5198466qkd.7.1619406131818; Sun, 25 Apr 2021 20:02:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406131; cv=none; d=google.com; s=arc-20160816; b=Rhg1lJCI20+mGNEbXVtHPGq1Wopz+Bm/rO2dP+s9nzNvd62Lw79tXCHM3GoNYjE4mo IaIHh7GfZbpyQsrcT7MDfJCV2226gUMete5dHkOCOdJEuOKLLTtE2ENNHml4ws+RDaWT BUJsqM+0DSz06KeV6kGC4PkOk1JWUFahSd1n3N8XBFL+tzcKKLmSNiKSfwH9B/DMkwkM wXWJc9AbxUtVFPqM8zo/HD2p+51au/TBxM22lxN4j4AiXFqgtt8ox6ZchLb7YOo0r2KW rXDaQk9jIniRB9yElLB31P0M5jnffhGawLML/3sQwUYdZPe2avbXVPR34XRq7+sw2cUG Zrqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=etz9UFR07Z7S/muZ/6WRfi9HnX0DFJP9uctiLlVucJE=; b=bqg8mlghXdyrsmxVrc4En3vQzzcRYLDrYiBDeJ7ByhA5mj+M53r0je18CJl231A1Ah E9tEmzCTA3Po/IrMVjQmi5wIlpxkVXl/rgGbhoCEp2aqHaxpsnkbaRfRVGnSLxXuneVG zc9m5sAXsqQ5X50ptJLYBsBh9kxLZB/4XDBkxGe5EdxkZPD/1I2p6nvFk5xXMTsrbAxo 75Ryj8JBPqXtOfoUOcJBFvawfCGh7ZHmhtctfZngPm/lUpG9T2zzpbUqsnLCdm3OR+iy 5123NwM6ytnnPp7i3XjSqi+eQNo1+azBMIiyErQGD3BkPUcJtqmjxMPkxDfLaiRuU/I9 LQ0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="nOa9/0rK"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id r3si11211325qkp.298.2021.04.25.20.02.11 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:02:11 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="nOa9/0rK"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:43992 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larVh-0007ww-H7 for patch@linaro.org; Sun, 25 Apr 2021 23:02:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60240) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNo-00084p-BH for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:00 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]:39430) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNe-0007aW-0E for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:00 -0400 Received: by mail-pl1-x62d.google.com with SMTP id u7so26326750plr.6 for ; Sun, 25 Apr 2021 19:53:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=etz9UFR07Z7S/muZ/6WRfi9HnX0DFJP9uctiLlVucJE=; b=nOa9/0rK3zMZXfkgZ6+UlsAvUdRoE3BcloymSl/LeDhUyF9+nT1dPrFL3m94+QAAZo t1LG4NV0oaPi1pHfqjKQ81Lo4ihzFpwon/mTeF24mmI+AYJnOFDxf2YljPJ9cAGKTYZx NJv6aoEHFB9FCrrQ31/bAsT9b0/SRZwp/tz0w8zoQVyw0iYE/2jnT0a/1jxRUKy1dtUV UaZR+ctUyYgRsk8o8YKGazFB9QRJmZiggqiALoVxtEoFoex4EauLEpPyMA26egpkFEku JafRv13+tdx7LZgaYvx2m0w3yIlUHkjlrS+xCKnMkHEi1AmJWkxEDjUwVV+HwkDAeJUj Agwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=etz9UFR07Z7S/muZ/6WRfi9HnX0DFJP9uctiLlVucJE=; b=n5NLdPCDooqDVAQJHWPGIt6pQOKTlaWgpNmU3XDpTZaTqm/duukwL7289F9ioyAZYV EQsbV6doYkdZUAWtkzl3iz6kbOnSSpR6ObX/9LLa4iVBukO261IlESA4fZM/V2ono7ya pmFmpke9pGsfNwdXZGjJ0qVk7Ls4qZsx/EVkHFosklxFk9nWAhunxSdgl7eNcm+SocwM moCtJrPVCiw8bh6xR8YiMVkg+nN8hAy7/2noDVeoL/Gecr/92iCzPNovPP865zpbQ5xZ pZ6R6ouno6i9ucbz59IuVV30Jn9a/lBbGnnVHQCf6lB2yTCpTDa31rYg4175o6Mn5Zhh Z/Aw== X-Gm-Message-State: AOAM531jCUy8IbYovRDS/Lnce6iwtD3Q8/3YG8xlQ1Jku6AQvfwZqZCh uWwKUSx8AF90W4VkenuUowICCx28QqBXbA== X-Received: by 2002:a17:90a:e28f:: with SMTP id d15mr19808432pjz.113.1619405626130; Sun, 25 Apr 2021 19:53:46 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 15/25] linux-user/sparc: Use target_pt_regs Date: Sun, 25 Apr 2021 19:53:24 -0700 Message-Id: <20210426025334.1168495-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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 --- linux-user/sparc/signal.c | 121 ++++++++++++++++++++------------------ 1 file changed, 64 insertions(+), 57 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 3474098641..0d9305818f 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -43,17 +43,6 @@ struct target_stackf { abi_ulong xargs[8]; }; -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 { 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_sigaction *sa, return sp; } -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 = 0, i; + int 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=0; i < 8; i++) { - __put_user(env->gregs[i], &si->si_regs.u_regs[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 = 0; i < 8; i++) { + __put_user(env->gregs[i], ®s->u_regs[i]); } - for (i=0; i < 8; i++) { - __put_user(env->regwptr[WREG_O0 + i], &si->si_regs.u_regs[i + 8]); + for (i = 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 *env) +{ + 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 = 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 = (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 = 0; i < 8; i++) { + __get_user(env->gregs[i], ®s->u_regs[i]); + } + for (i = 0; i < 8; i++) { + __get_user(env->regwptr[WREG_O0 + i], ®s->u_regs[i + 8]); } - __put_user(mask, &si->si_mask); - return err; } #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; /* 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 = setup___siginfo(&sf->info, env, set->sig[0]); + save_pt_regs(&sf->regs, env); __put_user(0, &sf->extra_size); //save_fpu_state(regs, &sf->fpu_state); //__put_user(&sf->fpu_state, &sf->fpu_save); - __put_user(set->sig[0], &sf->info.si_mask); + __put_user(set->sig[0], &sf->si_mask); for (i = 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 = 0; i < 8; i++) { __put_user(env->regwptr[i + WREG_I0], &sf->ss.win.ins[i]); } - if (err) - goto sigsegv; /* 3. signal handler back-trampoline and parameters */ env->regwptr[WREG_SP] = sf_addr; env->regwptr[WREG_O0] = sig; env->regwptr[WREG_O1] = sf_addr + - offsetof(struct target_signal_frame, info); + offsetof(struct target_signal_frame, regs); env->regwptr[WREG_O2] = sf_addr + - offsetof(struct target_signal_frame, info); + offsetof(struct target_signal_frame, regs); /* 4. signal handler */ env->pc = 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; - __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); if ((pc | npc) & 3) { goto segv_and_exit; } /* 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 = (up_psr & (PSR_ICC /* | PSR_EF */)) - | (env->psr & ~(PSR_ICC /* | PSR_EF */)); - + restore_pt_regs(&sf->regs, env); env->pc = pc; env->npc = npc; - __get_user(env->y, &sf->info.si_regs.y); - for (i=0; i < 8; i++) { - __get_user(env->gregs[i], &sf->info.si_regs.u_regs[i]); - } - for (i=0; i < 8; i++) { - __get_user(env->regwptr[i + WREG_O0], &sf->info.si_regs.u_regs[i + 8]); - } /* FIXME: implement FPU save/restore: * __get_user(fpu_save, &sf->fpu_save); @@ -267,11 +277,8 @@ long do_sigreturn(CPUSPARCState *env) * } */ - /* 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 = 1; i < TARGET_NSIG_WORDS; i++) { + __get_user(set.sig[0], &sf->si_mask); + for (i = 1; i < TARGET_NSIG_WORDS; i++) { __get_user(set.sig[i], &sf->extramask[i - 1]); } From patchwork Mon Apr 26 02:53:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427495 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3323612jao; Sun, 25 Apr 2021 19:58:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwIdJqx5+9CeoL8MEB+jfM8Dix5lcli/xbUoSTrUBpxt3nF96IqH0Fn9H1nryPPU9dicMjS X-Received: by 2002:a02:708e:: with SMTP id f136mr13972153jac.50.1619405925003; Sun, 25 Apr 2021 19:58:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619405925; cv=none; d=google.com; s=arc-20160816; b=j+Bx+iFvbd565C9WQ2AWvy+I46k3wcUx7iL2zn6KLxJTrVPMMzUzbtdKzSTFsDHtQO eO6it3lLBHRolrRkrX6iHPKj1tbM1bjFxEAPk8VUzXXrz7mw9CmJQBdgpHMMfcVSIkb1 7gJUacPVjIKff+ukUbBmY+BzmfxdQEveN+YGQRjVEappn2EOVBdD+TTsfJ0B+dtfM8Bb PFAWThiuPzEQ4SqbLTgmq7azKxDTsO47Hwgv9tNb9+Y9jKeV1BtSVuIKcMQIN5xiR6nZ dAzjwLQ0mEacYCTXBiaBpbDDXooSrdRQFRyggJtEjiv6UTgkpiaTnzVjgVhqqAbNZSDy qeMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=kHj7Bgo8QZgP8XeIjGIpJnnzw5GIweukUt15ok1mmwM=; b=hJPXRnG3aepwtKUOA7MzlXQ88rYPR01b0enp9p3dnIvn/zE7+mY90W4RTI+qj33lsQ eq/UCMr+40MIw9uqWYqiaqHeHAJWO6CvhtdLyQZ8Lv5dxQh1w6sdhQvAl8hWj4vRJ5E3 87qUrUwCHbY+op+/FNefbmve1Gu0IgR3GMzTYil9gBHRF8hXIJB4haX8PzKa9eFTiZkZ a3K2D/p+QdkK9qT1BQqU+phQc7Fl0Q9WpA9GyOWjb5uqAmmXH31A8jeQZHBAbNvlCH8T JYBdAOj7cfgidOsVQmhyRKTpKHKlNPyJtl3G7/7hkZrIvCRsRZKJ6qNCEmYP0sWEibiK Yhxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=IDQBJBhP; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id y25si14107048ior.25.2021.04.25.19.58.44 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 19:58:44 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=IDQBJBhP; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:35576 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larSO-0004Ua-F9 for patch@linaro.org; Sun, 25 Apr 2021 22:58:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60192) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNm-0007yV-3U for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:58 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]:45002) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNb-0007aB-TX for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:57 -0400 Received: by mail-pj1-x102a.google.com with SMTP id m6-20020a17090a8586b02901507e1acf0fso4405011pjn.3 for ; Sun, 25 Apr 2021 19:53:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=kHj7Bgo8QZgP8XeIjGIpJnnzw5GIweukUt15ok1mmwM=; b=IDQBJBhPPNQaWdsJZOqETgyn+/TJd0xlnM1toSU0t+tk+Woy/caWrJGHEQtTGhImWm 7i0hkkw8Vlt1GWxkwhESPiLKN9SgUr5hSbo+NT5Gcq8ZNR+ypHYGI5Zs1EQ7bUFIlvsF 0u7pnkPIrs3bcrIbb29CXCwJgZW4u1PZM3Gw8dbtQkosDqC2gtJHH+1DAQAzWxvbvLut 8Vqnbya4e4KxOWoZGyZ3l9KJG+uzhZ+eK0o43ZBWXu42gG4IhyXTWp/p7Uij15L5ivZ9 qMlcgsTW0vJLJ/82ReOF8ILePrzbH9aon0jh6FDXQU79Xem3Or7jIm8MwWhJGyFw+kJ0 ulIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kHj7Bgo8QZgP8XeIjGIpJnnzw5GIweukUt15ok1mmwM=; b=AAutP6o4ug6Lg9KWGhhRUty/+0fPCg/FyVFIqXyO01WGFdgX+f16DP7I8+wvMwC1ck zfkhKR8dHq2JvKn8ZLeX7BDy1rCzyTZrXfQxd+afryh+uFdyBTEMm4g9fXBfwAWdib15 iMjUcHzWvuTQV2I8YHEpiiOXfZ2Mhw90Zp3iT0hHleLIs8hp3YGgWWBY6WdK1WqUxJXV QV4fCBMG4aUTIHDQ0ZvhXc0+xTYS+epvHEk/FzolGtDk4HUPri+thn5st40WTTwnN5qN ICHH7Xvm2QPLIFF8VtndYTUIbVnxSV+9TP0DULNCu8YWBRVVXkw9MoMgdO7H0w6UO7Jm N7uQ== X-Gm-Message-State: AOAM531OngH//daIx1uxW6YTcCxrM5nLabJI0yn4GpHSLWkrxzn0CaDk Ri4dC9f5qEhtaxnPMhXGchxHnHC9STpO9A== X-Received: by 2002:a17:902:f547:b029:eb:5270:8774 with SMTP id h7-20020a170902f547b02900eb52708774mr16008898plf.5.1619405626725; Sun, 25 Apr 2021 19:53:46 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:46 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 16/25] linux-user/sparc: Split out save_reg_win Date: Sun, 25 Apr 2021 19:53:25 -0700 Message-Id: <20210426025334.1168495-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::102a; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Richard Henderson --- linux-user/sparc/signal.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 0d9305818f..69fee5a76a 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 *regs, CPUSPARCState *env) } } +static void save_reg_win(struct target_reg_window *win, CPUSPARCState *env) +{ + int i; + + for (i = 0; i < 8; i++) { + __put_user(env->regwptr[i + WREG_L0], &win->locals[i]); + } + for (i = 0; i < 8; i++) { + __put_user(env->regwptr[i + WREG_I0], &win->ins[i]); + } +} + #define NF_ALIGNEDSZ (((sizeof(struct target_signal_frame) + 7) & (~7))) 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]); } - for (i = 0; i < 8; i++) { - __put_user(env->regwptr[i + WREG_L0], &sf->ss.win.locals[i]); - } - for (i = 0; i < 8; i++) { - __put_user(env->regwptr[i + WREG_I0], &sf->ss.win.ins[i]); - } + save_reg_win(&sf->ss.win, env); /* 3. signal handler back-trampoline and parameters */ env->regwptr[WREG_SP] = sf_addr; From patchwork Mon Apr 26 02:53:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427496 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3324117jao; Sun, 25 Apr 2021 19:59:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx4vdIO1GkShN43/MhkoPX7fHK62hIgIL5h8qc/s1TMdYjBzHaJCc/kTcNj3z6QUNR24FsV X-Received: by 2002:a05:6e02:20c5:: with SMTP id 5mr12098522ilq.14.1619405982869; Sun, 25 Apr 2021 19:59:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619405982; cv=none; d=google.com; s=arc-20160816; b=aA0DbwdBtG3M2vuXjqXuf6lKUwaH2Go+zV3qGAlD1dbQUSGaFR4pbCukvikU4NmV+y 5cw9OATWb0fJ0BTPEQZ6gVThBdCWkTcCsAulhUbf4tu2iG9P0n2OtosSeKWnVfY1dRLj nU0bK6Zg3UcKQ9yKVdUoYwBPoZJQmfrxtOwXMTITJrrSDfN5hIPlppCKE7WvvjDLBQ43 4d3H+Wdl5HGqph3su472++F8k53mSQN9Jb7BIH2H6oh114qgzBmdgjCbaGj1s/ix4cur 5yFf53H8W12S7SyPlognW8j2kbmrXA8gA6H8dZxLxPs1l8KqgnYtTkY31UXWS1Es5f63 m5pQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=8X2zO03TJt4CS4kEskEmYiM2hl5KYuyxMDL0WRDKy+4=; b=v8BdIv9uqbW0emM2W6eE0AZ9D+BUq1cqlDSfoiSj5raPqEke+4LBIxNHYiV2HDoRFC 8UChxF4zBTenb866pzDqKHgI9rsHIE5CF9m0ktpla5+8KU/JH7fgYM8fgYtKJkuL0ELg pIkYjmEZiJdTlvfBk+pxxbfHmiR03+diW3sswD80WhuGWT9Psp92xCR4XT5OSsGM7uGB gJesdwId0aIEwoEQsddtsRv/CgyyBf5hNGUjnNcyEUBpxczn+Lfu7hqGeHCGobIyIXVo Ug//bPlEvPihUQC4NBPJgulLbX5Y0l7lQLIqfAV+LQMykk4UWgUbml/Jg5K6SQFjVIaw wu0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=NvDLXBwS; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id h4si15249841ioh.64.2021.04.25.19.59.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 19:59:42 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=NvDLXBwS; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:40424 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larTK-0006QN-87 for patch@linaro.org; Sun, 25 Apr 2021 22:59:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60214) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNn-00082g-GU for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:59 -0400 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]:45649) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNe-0007ap-1q for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:53:59 -0400 Received: by mail-pl1-x633.google.com with SMTP id p17so2241074plf.12 for ; Sun, 25 Apr 2021 19:53:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=8X2zO03TJt4CS4kEskEmYiM2hl5KYuyxMDL0WRDKy+4=; b=NvDLXBwSeYyk2kdp5sGZ/m76MRFTLTFwL4NOtXc6yteuy0vZlJF1rqDkq4BaeOJ3qw 0I963gxd9BfQ0eYc7a5uZw6+mxHBWbCFzVmf62AWwULEGrblK8z5OVVLSYo4MhlTZtKF jAXgZ7H6rhrGK3CkjVyLTHeD8BsqEzJ4rzPcrfGBnh7eHFt/91f9tkpFfa2lPtwy477i rfQEiiv5FGGy5YM8/BfDr+9Io7f0QkX59/MoqIjxNVFWkWY2bWQJKDVpS4TZnwhnopUY 7CebqEYR/G1C+RQRcWFl83UpHKnc4hzJ8uTrFvbeIU3fnlMVW8e+7TevQYALCbjPyT04 Vb6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8X2zO03TJt4CS4kEskEmYiM2hl5KYuyxMDL0WRDKy+4=; b=h0O/ii0qbViK5yLjfEUEYcFxG4UrMcyakwZ7Zt/IjUtJwEwFObsIMqx1g9emR9XSw5 kF4quPsJiBM7MZqGEwc+q7Ca/MZWL6K/5Mo3evrmq0plVSyFQvdFVs21vTHIyKDYz7h5 1Q413m2Vw+99sDUlhJ1lv3dSWjcBeP0+N/BuqLKVGOjWXtAGFY7wNdBFXZ95go8PtjUX rJ4IRREk2LnNUJQaBf10tKAJJm1WmCW+kCNl8nMfxIN2R+YPYBt0THZ4wQVGtjg5a+ZI lluuMLWtsVHhkAvNUC++0mmfQ2k4m9UuTi9wy7si9gNZuQjhiUQ/EBTPsA4tqbtCifOU Dd/w== X-Gm-Message-State: AOAM530WqkjVGwpFjTvTMmmT9heyHMMBF9Lazmk0MT/Bf/vQ8LSMjPrY MTntofYVkPqtbXDF+Sitoe4SVt57iFawVA== X-Received: by 2002:a17:90a:af91:: with SMTP id w17mr20021967pjq.205.1619405627366; Sun, 25 Apr 2021 19:53:47 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 17/25] linux-user/sparc: Clean up get_sigframe Date: Sun, 25 Apr 2021 19:53:26 -0700 Message-Id: <20210426025334.1168495-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::633; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x633.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Remove inline; fix spacing and comment format. Signed-off-by: Richard Henderson --- linux-user/sparc/signal.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 69fee5a76a..57dbc72c99 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; }; -static inline abi_ulong get_sigframe(struct target_sigaction *sa, - CPUSPARCState *env, - unsigned long framesize) +static abi_ulong get_sigframe(struct target_sigaction *sa, + CPUSPARCState *env, + size_t framesize) { abi_ulong sp = get_sp_from_cpustate(env); /* * 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; } /* This is the X/Open sanctioned signal stack switching. */ sp = target_sigsp(sp, sa) - framesize; - /* 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 From patchwork Mon Apr 26 02:53:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427509 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3329379jao; Sun, 25 Apr 2021 20:09:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzJqcRg0aekLXZyCohjQoOQ6t4p8vkyRLYteq/svlqUH7bbjDPycBi5HStTm021E1a3QS2X X-Received: by 2002:a25:d094:: with SMTP id h142mr11098683ybg.477.1619406584941; Sun, 25 Apr 2021 20:09:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406584; cv=none; d=google.com; s=arc-20160816; b=gTpBy75Qkjotjq5u3nn1m+giJfWj3DATRjxFapKax7TIbZ0+8zSWrfw1LqAdQ6Kwhk v0S5ghRKwRsRV6ABHnWC88YB1hjp57OB+ZHkMN9t6qe5pTs93KaR56cXaSruCYMFt7nq qZrFf7hWLFxXHnXXLSMwfd/VorBuVtwHuvcKBALiCv8MzwJrZwy6ub7v/qziYqo3zWAi VNNw2CcC0lCHrvqkKmicIcoS2TYopgM9tyGy6dftiCJVvFSDWY9VTvJ1TK41Ppy423Uw pddfLW9KJ8JMZN31vgDRJS/5ceet5fboU0QFBdONQLK3W+gjBdd1Pims2yPzDjKQXcZU 8GFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=GSv2Lia+YkHhF9npusGlZUh4XoenFbWxLOhoblxXxWk=; b=mB+v5fyTr4Gb4VMFt4sH0i4L+9ezRL/gdafpXHy/itUFnt+rK4HcBh3Nn4L7BZkr43 TnzahPNlKjiutcLnehMig28QsQuNJTtrY9yb+psgXl6iMeMt2AsbpQOnO1IY6w6R4pZ/ 636RRJmqc/H//p6od9ihPT2ndlbKSOevuKz2ZRfItNj79lUe53ngZjDCJVsD4Lj75Lzr YUz9t9GM86Ii0rnWYU1HYKpdJupFjyTzfxMY3mRa25Xf9LgilAyyqhaLNK9UvcS0+6qT 4qc28SEIPNnfLXTEDkqYTjVWhQemX2+sFLTriaEdt6AkxdwuMvQZrSUgU45Fuc+OSKxc wtDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=TC5yAY5n; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id y15si13398216ybj.358.2021.04.25.20.09.44 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:09:44 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=TC5yAY5n; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:37876 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lard2-0000Vq-A4 for patch@linaro.org; Sun, 25 Apr 2021 23:09:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60250) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNo-00085X-M4 for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:00 -0400 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]:44786) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNe-0007b4-1l for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:00 -0400 Received: by mail-pf1-x429.google.com with SMTP id m11so37993884pfc.11 for ; Sun, 25 Apr 2021 19:53:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=GSv2Lia+YkHhF9npusGlZUh4XoenFbWxLOhoblxXxWk=; b=TC5yAY5nlL1QlIoPabHLmXTVToWEHf9frlzUl/gTizOEt/ACgV4xG8pFxqAMw3xUnH rMriPwAmGqBwNrw3RBC2/oSS/67zxCIiN/V2MFctUI73lNcTCUBcJhdDx1td8WRYrSe2 QUC40u88e2bWZD3M6ygC5pFJGtSdqSUlvEBnezbrPirdfpK1m1q3EYqJ0TWjVPeHVXge WpvHUTOoRMl6n/2H482ZOhvYwanO91Rik8CF7lMe+BppT6DyY7F97J6fMgKck0EyNC33 zezxZc1LgxBEb7HYLKwHgXth4RxJGFpj1ScN9XOQ3+j1v2L6Tx8TuLQK4+rHryxM3Bhr BG1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GSv2Lia+YkHhF9npusGlZUh4XoenFbWxLOhoblxXxWk=; b=aU4015xE+whRaGFP8/PkjkhjlxooMmUtA0hHtDVEWT84h/ZTkIdKAMrscsMLZKwKVN AcAtS1VuD8CKD7yjF9UK3Ifhf40T0CG0o/xVyLMaK8H19ObrexfQ64gCBZHG4P5Ld8OF +2wY8NMKU+7lLSvPLr8q/buO8TW70kqssDOVKb5DTg0ljwnnrYSp9+i4BI7LkpRIEJZq PMoONnX0J/W0NEterzUXeaSDM7FS41anvCiTa3/V+JEfkWgweT7nNcu97fgbgPJyzm4A xEUl2+GY2YwdzIuxutoXD8h3WhzrRORjVpEBKvfffRPvWSrixbuTcOpOXJyLFaBO82Jh cZFg== X-Gm-Message-State: AOAM530XSQbZG2t4CC6UXYv8v8+XsJCAQ3P26SeESLLbyS8LXWUG2AH9 4UL0Nnv79yH4GplZwpxutmg///Bb+8lYBQ== X-Received: by 2002:a05:6a00:1a4a:b029:261:d9ed:fd80 with SMTP id h10-20020a056a001a4ab0290261d9edfd80mr15542470pfv.20.1619405627960; Sun, 25 Apr 2021 19:53:47 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:47 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 18/25] linux-user/sparc: Save and restore fpu in signal frame Date: Sun, 25 Apr 2021 19:53:27 -0700 Message-Id: <20210426025334.1168495-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::429; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x429.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Richard Henderson --- linux-user/sparc/signal.c | 84 ++++++++++++++++++++++++--------------- 1 file changed, 51 insertions(+), 33 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 57dbc72c99..59bb449512 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -43,26 +43,25 @@ struct target_stackf { abi_ulong xargs[8]; }; -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; - +}; 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 */ }; static abi_ulong get_sigframe(struct target_sigaction *sa, @@ -163,33 +162,51 @@ static void save_reg_win(struct target_reg_window *win, CPUSPARCState *env) } } -#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 = 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 = 0; i < 16; ++i) { + __get_user(env->fpr[i].ll, &fpu->si_double_regs[i]); + } + __get_user(env->fsr, &fpu->si_fsr); +} 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 = sizeof(*sf) + sizeof(struct target_siginfo_fpu); + int i; /* 1. Make sure everything is clean */ - //synchronize_user_stack(); - sigframe_size = NF_ALIGNEDSZ; - sf_addr = get_sigframe(ka, env, sigframe_size); + sf_addr = get_sigframe(ka, env, sf_size); trace_user_setup_frame(env, sf_addr); - sf = lock_user(VERIFY_WRITE, sf_addr, - sizeof(struct target_signal_frame), 0); + sf = 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); - //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); __put_user(set->sig[0], &sf->si_mask); for (i = 0; i < TARGET_NSIG_WORDS - 1; i++) { @@ -226,7 +243,7 @@ void setup_frame(int sig, struct target_sigaction *ka, val32 = 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 = pc; env->npc = npc; - /* 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); + } __get_user(set.sig[0], &sf->si_mask); for (i = 1; i < TARGET_NSIG_WORDS; i++) { From patchwork Mon Apr 26 02:53:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427502 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3326461jao; Sun, 25 Apr 2021 20:03:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzOb3RBXS+77QFajY/3EMcstFq0hJLf/bJezVYrBxdp+D63QWTSADtTXlLRaa9dreiQgvy3 X-Received: by 2002:a05:622a:354:: with SMTP id r20mr14815485qtw.211.1619406231392; Sun, 25 Apr 2021 20:03:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406231; cv=none; d=google.com; s=arc-20160816; b=zlV+jm+KMAhp4I4B7QNkNcSh9BHFYhTVj9SoD7lNlHAuZ/KgFIs9KvLjmTFtx42tbE X9xqzPhhJTiXm8I7pQQNtKVVQ9oCeF4qBMbtaQ9iFBBk+C+ps/hP+PTVGc+EpJk9PzhY ZzJ9xbXcuexlHUuI8gzyKu2SA030AJ+6ecyb5o4HnO6wIL/WTp3NbfPSYBYu2RDAeY1x Yd/lek6eRIZqmtBfX0ZC0aUBkhmSjSE6h9L0rH40fYNvQXb7fR4o47OvPBcakkQ4qYtJ LUSFjDzLAdgei7UYWEc85LPBrsfYMDTwEmsKGBdrFsHoKtgIPo+3FuA8dujxQm0qQjPw ViKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=ZmiRdz/LH5blkmk2QVMNymQXBH8BUvzoJtxxTW+SeuI=; b=vUDNtoz2zR7oBgSkLAkLi2WzyZWi9KE/FuipK9CxmlVUj4DO+7oedyfUM+HryflUH8 HIXGzLS06cNACqgsi3AYYlpwSanE1M6vyslc0DHneVBN4t5nOn3Tfu8lvOraL3TAPkQ4 RgKVSkVw/qg4BtCUTnIP1e6ZrzfKsADkPKMirQgopEeTnxDDz9ICSczf9qaJZ4jtNYeS LAE+D6X/4eOKn/EGsgpm5dnRIsgltIzlXuV1uMK44cXvjtJZ3sJUoQ7dl4gT/I9cDQQx YMghpQIC5vwbdgM2i/haLEcCoj9z+vejIS1cWc48PpZIEkgi/UnHMuA70TtYduocJjaN LYXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=PcTx7gnC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id j4si11052400qvo.118.2021.04.25.20.03.51 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:03:51 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=PcTx7gnC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:48764 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larXK-0001eU-Lz for patch@linaro.org; Sun, 25 Apr 2021 23:03:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60280) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNp-00088R-PX for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:01 -0400 Received: from mail-pg1-x532.google.com ([2607:f8b0:4864:20::532]:41762) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNe-0007bg-24 for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:01 -0400 Received: by mail-pg1-x532.google.com with SMTP id f29so2009304pgm.8 for ; Sun, 25 Apr 2021 19:53:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=ZmiRdz/LH5blkmk2QVMNymQXBH8BUvzoJtxxTW+SeuI=; b=PcTx7gnCCykwN7VrFqLd1ZAFjNiePw9pypmIRFQ+JBVn8Cll3A3ZQwxn0dQf62MLmZ Ml8xyEfs0sJeZbJdqNUz/CF4RqJCrsU2OTv1zIBamZPafsUru2LuLqa54XiTeSQqDX2c f5aGR3sP+ab9bQZVWOF8nTe3PqKg2oGOfXgYFU60G5IvJup3swIWd+OQ/MbZpWlmOr4h tmvJCtZm6wgDqNYreA9H0KxpD+LCjwBPWSrewb1ORBNstvu/DnJlb/8KRrn8hBRny7Ra FjAljzhHNBO5r4sm8WkTLDj95QvIgh4VGZXdTJ6Ssza/D+MQPLfuAn696xAcLXlk5pAN vHUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ZmiRdz/LH5blkmk2QVMNymQXBH8BUvzoJtxxTW+SeuI=; b=Yhcww5YkTTTQDzgQP909QaM+yCTxvA0JTk+utW0ThfCPpKqu7OWc1ObvGRSNylHFLE Gh6+rHYOhxKMJmXm3pO+cOQhhFqiarB4pwuQoZXmSI9jQTSDLl8VqobNPOheG0bAQrX2 f40llwKjz+mdPROuhN1FlGws/50/USLNGe5p5gfezivbLDx3wp7Xufd9AKV/DsKsZUNI TsaT0JQ8D85tJL0LubRDwhEPlRUDmztv92lseq0iQ6T3ZpSl2vyVuV1UUXBodSgonRWd 3fqRXywHhoo2JWXoV1vNw9CqdGx6L7EXNepQhysj8Y3qLUt7nA9jvjExnXXKY+oatOT/ kwOw== X-Gm-Message-State: AOAM530feZNAnGGcCp/cTCxAWoGOW1gokYmA/2MIbANExs7JDrX2C3y1 9I+Sc3DyMr2IpkHeLm/hQzinnstZ9jJ4kg== X-Received: by 2002:aa7:908d:0:b029:250:81a5:2a3c with SMTP id i13-20020aa7908d0000b029025081a52a3cmr15013356pfa.33.1619405628600; Sun, 25 Apr 2021 19:53:48 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 19/25] linux-user/sparc: Add rwin_save to signal frame Date: Sun, 25 Apr 2021 19:53:28 -0700 Message-Id: <20210426025334.1168495-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::532; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x532.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Stub it out to zero, but at least include it. Signed-off-by: Richard Henderson --- linux-user/sparc/signal.c | 8 ++++++++ 1 file changed, 8 insertions(+) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 59bb449512..4a0578ebf3 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; }; 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); + __put_user(0, &sf->rwin_save); /* TODO: save_rwin_state */ + __put_user(set->sig[0], &sf->si_mask); for (i = 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); } + __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 = 1; i < TARGET_NSIG_WORDS; i++) { __get_user(set.sig[i], &sf->extramask[i - 1]); From patchwork Mon Apr 26 02:53:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427511 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3330488jao; Sun, 25 Apr 2021 20:12:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwfM3tDLhoooPV+ywlhSKglwPYl95AGKKO/P+3AWJhIlkDpofoLoBrPx2k7P/I3o/NdUiVz X-Received: by 2002:a25:3251:: with SMTP id y78mr21914641yby.455.1619406723909; Sun, 25 Apr 2021 20:12:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406723; cv=none; d=google.com; s=arc-20160816; b=rCjEQXsXkHOk2MYbalxfM4iRF8fZVRkXYt4q2/KRZ2E38T6fj2aLpucO+Qevdp68zH Y7OqqF3NEBZInM/x5O5fyd1Ii2ZdJI+WNvkG50AJdh8XoeROS2XvXo84eGMEDv2yy7zD YoRJO4n9s1fQX7xBBwYD+c1CRLBRzC3/HBQUv0dAvufgF/XzNdM4vL3r5r9aRP33yjQM T347d5oge5GT9ytED9cHPUKCipc5GV/3W5PrnVCfPiLMU6BOg4T6Xnx54isG0KRHsM02 pPuz13GEk+WF81xnNuDXyQuq4gAQO3fslncFGvEGeA0aaNSzXkwQFJbXxSF5tD3+mdgV z/Eg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=oLZDiZ0zf6r7oWF0NJt4N2+o2lynddysuK7PTnY81v0=; b=vtmPDr+a/7eDHxp4RcAAWHu335iPM7T/caHKMsD++G3Zxa/5aQbtNIdsanq8IXyX2X LsM46V2qB3kRinVt9TYX+zLupLf2ZO5cUFwC6n1qjyVwMEEIHrH6t2j9ZD/mOuQ80YCr JXGVZUmw+/WedoAGWZ02D961SaUEmUjNFerxSCABZf9rzvQGqUIGzjuy15rBn0J+CK9T Ygb35pGvVMmqFyjAApb5IzZYx4uyMbI+nF5ltUcYMk9DztFieoWS6VEgWvcTfjvBRuwR gTB0zyZrN/REFUrP87dbnGLkldqSQWdU+STzpbHqTm3IZjGkzsaw1PFk5JzM+MzlPUAP afQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=o4805519; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id x13si10399405ybj.153.2021.04.25.20.12.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:12:03 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=o4805519; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:45528 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larfH-0003lm-EH for patch@linaro.org; Sun, 25 Apr 2021 23:12:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60254) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNo-00086I-UA for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:00 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]:50691) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNe-0007bs-G0 for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:00 -0400 Received: by mail-pj1-x102d.google.com with SMTP id md17so724976pjb.0 for ; Sun, 25 Apr 2021 19:53:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=oLZDiZ0zf6r7oWF0NJt4N2+o2lynddysuK7PTnY81v0=; b=o4805519ByPZU79JPt2HYI8qxs+VWFyf5UZVbgpbWWYxOthRiHABYB2C5k2FPd3evU U0FPrriV+fk/rT4AeDWX0KoN68i6974loQwjLvyFtamjSkgWTtSLWYgemZ3TPDxyDC/Z 75nsKEf62H8XNr5+LFxKuCjhZHvUQG2czbCZIz2q/PA/cYAOPjCTVdi3dkYnMsXQZwR7 NUdQGWgaHfsD6mXYtYW2rLPHq4ith0qYYqzlyij8XozVijFPRJrisdOC1H1KZwindhtH yg3Gg6dEL/V/sd8iQXqoAbsZvuE3EWMx37WkL8o87zXpjev59uRZ8OYqblTMsSJl4Gpe /viQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=oLZDiZ0zf6r7oWF0NJt4N2+o2lynddysuK7PTnY81v0=; b=fSINyT6DaB+Oa4WzKS71wJivMYxJXWSUafreBkXQWw/mbDvdAJ8gnShGZcy3DXlR52 GUZz4Ny0jO1FZo0A2ELaaReU1FPzPgjS5S7pOY/VBHmGNlCWJyxNQ5gsmwL+HItcNyfw CQ5+HVThwbPTOqUMrjz7lOSETsSaFyShRfnHQ2altgG1ZuNoz+mTRJd1bBQgYK2db2dY xgFL1MFdEElme1Z7BekdA+QJFMLvKQY4iRG+hJfgsJGL8y/IoEanmwrtaMSresGLsY5m pDz+vgNnuHEFHXXz8KOxPN4VoK/kB+yi0Wdhq6HNL4vdxuhM56ESDm5XCElwBc0EC387 U9Og== X-Gm-Message-State: AOAM5313IPsrO1yhZ5C5KW52BNdDf7Q8tA9ECDGLmHkbPBgEGMm6OrkC eNRH7pMA2i6fe/Wm3bEgmN8hI16rnj0FyA== X-Received: by 2002:a17:902:cec1:b029:eb:66ee:6da0 with SMTP id d1-20020a170902cec1b02900eb66ee6da0mr16649361plg.84.1619405629187; Sun, 25 Apr 2021 19:53:49 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:48 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 20/25] linux-user/sparc: Clean up setup_frame Date: Sun, 25 Apr 2021 19:53:29 -0700 Message-Id: <20210426025334.1168495-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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 --- linux-user/sparc/signal.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 4a0578ebf3..f0f614a3af 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 = sizeof(*sf) + sizeof(struct target_siginfo_fpu); int i; - /* 1. Make sure everything is clean */ - sf_addr = get_sigframe(ka, env, sf_size); trace_user_setup_frame(env, sf_addr); sf = lock_user(VERIFY_WRITE, sf_addr, sf_size, 0); if (!sf) { - goto sigsegv; + force_sigsegv(sig); + return; } /* 2. Save the current process state */ @@ -228,33 +227,21 @@ void setup_frame(int sig, struct target_sigaction *ka, /* 4. signal handler */ env->pc = ka->_sa_handler; - env->npc = (env->pc + 4); + env->npc = env->pc + 4; + /* 5. return to kernel instructions */ if (ka->ka_restorer) { env->regwptr[WREG_O7] = ka->ka_restorer; } else { - uint32_t val32; - env->regwptr[WREG_O7] = sf_addr + offsetof(struct target_signal_frame, insns) - 2 * 4; /* mov __NR_sigreturn, %g1 */ - val32 = 0x821020d8; - __put_user(val32, &sf->insns[0]); - + __put_user(0x821020d8u, &sf->insns[0]); /* t 0x10 */ - val32 = 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); } void setup_rt_frame(int sig, struct target_sigaction *ka, From patchwork Mon Apr 26 02:53:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427513 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3331714jao; Sun, 25 Apr 2021 20:14:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxQ3jDS45qhvhVAF4ZCfSdrkhqRBGS6UcT0O2fMmWRuxBj/p6IKgrFfamqXUd78auiU93RS X-Received: by 2002:a05:622a:c3:: with SMTP id p3mr14636085qtw.43.1619406883629; Sun, 25 Apr 2021 20:14:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406883; cv=none; d=google.com; s=arc-20160816; b=WLmK8W9gWdova81gmO9pIT9ilrt1S+81nyqtB+q3MJ8xfLotVg1fHrLrnbep1gltGv XdL2NPr4MpiLyO2bCXo6ithUcN3xOfmmStCsCrWcmsJvFoyIyjjjGIhc2KsGMf8S1LHR KLysv8koaKJ7f7/8jkDFGHjSl3UOuI4YrPOqr55Hl6AKscSLK9EgyGOqUhZbhoaTVqj+ adMgSghoKrr5QvSH7vvjRnLvy6nU61WdofA4fqYR+ERqyIJgPBGYOmTzO71sVMkXKR6m LGIvQa6WC7Nm+H0eo+tpxmLc9T/ziAgc4vWhOwyd6O/g6TECy3XfxfrF5u0zCPamqz2v mE0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=StsRKN9z7yfTj0IH3GzexqhFO/ZIMPkNxjefbCkcPBA=; b=pxFvjz38BkbPY7WWloVSSIs/KsWAUmCUrnT3uOAeHmsAmg/jMspnPl7m//IOWZErz2 tVevdMT0ylHYRX4AgfrPBcH06h08WOyp9jB0xCWW+zWxRlR1QorawmOD0KcArZJ6PtkW V1wB0LVZiQN3A5oMdWunCUdbKK7cqQR7UC7HpRshX2XA838dcI806Xezvyqkmqbd2a6p rmY27mO/5cVqedROpGIu4hWL4MwGHHDnXKVyTxRbmRFrvfAn1LZmyR174aimq6X1AJzW lfgrRmVF1lru0+YRDHM54aETTo4lM+FjhNCq7+6EyvKFuPoiwMvWPrUiyucCcXQ0DBKY 9jkg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SC1Ql7Xh; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 4si11704447qvx.218.2021.04.25.20.14.43 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:14:43 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SC1Ql7Xh; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:51614 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larhq-0006Ik-SE for patch@linaro.org; Sun, 25 Apr 2021 23:14:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60294) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNs-0008Fw-I9 for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:04 -0400 Received: from mail-pg1-x535.google.com ([2607:f8b0:4864:20::535]:46901) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNf-0007bz-VN for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:04 -0400 Received: by mail-pg1-x535.google.com with SMTP id w20so242923pge.13 for ; Sun, 25 Apr 2021 19:53:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=StsRKN9z7yfTj0IH3GzexqhFO/ZIMPkNxjefbCkcPBA=; b=SC1Ql7Xh/47S5kRmTAVinfQHrx9KYVF18FQ+PIisUsNqctjjmGV7qArubM6PT+DQAa 4Buz3FX4mDR6qzRDypdcJ1kXkBHK+fGhLfxlqXqnZEwYclEyCHmqsny30z+sVxvhC+h3 PARveFmfrQ8uxqVesEFg9T0SjTMLVQWpB4ECEN+kkQWoBajLYpl1bOsCrpRbSnqnaoX1 mrhyWBGqBdB6Kd0Lo4RkuYtuVr/u7nSqUv+8RaM8oPRoa31bvSQ1p0PeUdUmfyIdiKdU LJNw23MHzKe0nF/e1CdzIJwM9TDfy50GcKaiYI6K+48Gm7VRyjN0pK5yGYsA9/6mLjpI auig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=StsRKN9z7yfTj0IH3GzexqhFO/ZIMPkNxjefbCkcPBA=; b=KBpD5QN2MVI4xQuENLlHqpTbs3KZLAmZMCnkuZKB9RBBqZjS3/o6A4Mkm3jc9EPuVN jq8/DpaaYuuuG7e4bgoCwxFpkbMROreMIgvvoYjriW9bOyx+sIIVqAbXvtBDizR9pvhP m3ecWOsKoWXk0x7SvtFXFrgsdUaTtM1sIKehNhM275/LUazXfhQ5y0PV0D+gSkj1BLrP NkO2Wn7PiWFckqJPMyyntXbOSSNYIEeUuV10tUUrtKkUfoTjA3Wg9Vm6sJ4uPJKv/u5g pQ+LAUCrgvIoSg4oS1LAw3jHc/TMJUdvrVrKxz1vZsFSzRlGVO5M73y3ncEJEazElPSx u5Wg== X-Gm-Message-State: AOAM530uRne7HeQbYC5IvbDiblYLesoUsfwOXnsDcNFSpfsMlzc2ebYY bHLQsyzoIFuYC9t2wpEe8nEnyVgskIQhUg== X-Received: by 2002:a62:8cd0:0:b029:256:a7a9:2a3a with SMTP id m199-20020a628cd00000b0290256a7a92a3amr15329914pfd.69.1619405629811; Sun, 25 Apr 2021 19:53:49 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:49 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 21/25] linux-user/sparc: Minor corrections to do_sigreturn Date: Sun, 25 Apr 2021 19:53:30 -0700 Message-Id: <20210426025334.1168495-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::535; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x535.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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 --- linux-user/sparc/signal.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index f0f614a3af..0ff57af43d 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 *ka, long do_sigreturn(CPUSPARCState *env) { abi_ulong sf_addr; - struct target_signal_frame *sf; + struct target_signal_frame *sf = NULL; abi_ulong pc, npc, ptr; target_sigset_t set; sigset_t host_set; @@ -262,18 +262,21 @@ long do_sigreturn(CPUSPARCState *env) sf_addr = env->regwptr[WREG_SP]; trace_user_do_sigreturn(env, sf_addr); - if (!lock_user_struct(VERIFY_READ, sf, sf_addr, 1)) { + + /* 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; } - /* 1. Make sure we are not getting garbage from the user */ - - 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; + } - __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; -segv_and_exit: + segv_and_exit: unlock_user_struct(sf, sf_addr, 0); force_sig(TARGET_SIGSEGV); return -TARGET_QEMU_ESIGRETURN; From patchwork Mon Apr 26 02:53:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427512 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3331312jao; Sun, 25 Apr 2021 20:13:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyi8Ijr5hy/DyP2mWK+0bRFV6QUpL7cZAo2Y7MI6VP/qUVIPUwhenrMbyA+Y3grIzTq1yIt X-Received: by 2002:a05:620a:12d8:: with SMTP id e24mr15152225qkl.364.1619406830294; Sun, 25 Apr 2021 20:13:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406830; cv=none; d=google.com; s=arc-20160816; b=JPBjwWI7qjCvez2OJ1ppTCpSlcvTfBTB5MaeZmGMOTI8cRHazVqwLRplGewRBglXed E2+oFjWjxj3onGxsquY+Z7NtWOa/TVbgRHIup8SX7GMJNMBvpWJUPiVrHI60ogFIU5hT VmOEUfcQLn0Sqy0AQycps6qlYpUaW194ahFmbfGyahzqp6Jkp5mL+MG8kGbSgBa0Sq1l 20qzmz65Glp0ppvbqRlGzxKPMjaQJRjCiPUErsqvfw3wlqfRg8OSCLySkySfPVMYgcU/ mM1B4ySwb9v3N68Q6NDK+kAic/7vEePvgqQ9EkfsYVmOAWwM6LlG/kpty15Hp2dhMnR8 OtXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=TkKT5OMJxjXKKyi/UocWIxlnEBUiJVtr7KGGLmdTMQc=; b=uJO0cGaXctifLNlqCoqb+CoD4YFCsl8Yo3x0wygm/A1s1KyEPrzHQIxRRbrnfU4b/V OvymS0JhU1mxwhBDipotUC00xAZaY3KqDPC8c0GZnVckvwQCxScOX2azNmn1FZKYAJAw SeN9gT3XOnP9kDwimpKZrDYeQE+QqcK8d3edKuxKFd7JBtjTR2XVUnMG7Yv/irjRC5Vw /RkpFrmdB9cKwlpI/B6/b4OUgACCKP60ryUAjQhnKMAQZlD1gagl+2d9KCZibK1IXBQv imu7pICUrfC1Fir0IUMsBJ+zX6MWmCR+Uk/I6/pDkS4KOynjBBsWzh6hbt4J2m/ZBWrM dQig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=K4FQhBKp; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id g19si9478219qtv.136.2021.04.25.20.13.50 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:13:50 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=K4FQhBKp; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:49514 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1largz-0005Q8-N6 for patch@linaro.org; Sun, 25 Apr 2021 23:13:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60264) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNp-00087J-9a for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:01 -0400 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]:44928) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNf-0007c5-VD for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:01 -0400 Received: by mail-pl1-x62c.google.com with SMTP id y1so12490353plg.11 for ; Sun, 25 Apr 2021 19:53:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=TkKT5OMJxjXKKyi/UocWIxlnEBUiJVtr7KGGLmdTMQc=; b=K4FQhBKpa3UfLwf3NkUriynEmfNxzMyZMSlKT9jpSbiZhR5z8IkU5oUke5r+vURhFW uYPqLxJeE8HDuOz03xgyiRGjjTdZcXGh68ot+Io1lgVSsdQWt1X6QJFFmQ2/ML7QdmXA 3QNwWicnkPir94tBK3uTHiRRMq2Uc+HGeHG+aclfL/qa3zSECh5KbyzKxxHcW9XPQdiZ zU/VKhuMp4i1cO4btPRly1OEF3AkSRvZ0egkD08+0QYIuqnLsFz089cwEf1EWKefAyM/ iMqFtTkXUg2XnN6BWdvFZ5fkAyNSzhYaP1vN7GsaXY1bclkohlp5fXZxFLWlc1UbycCd GuGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TkKT5OMJxjXKKyi/UocWIxlnEBUiJVtr7KGGLmdTMQc=; b=Ww4YOqEBN3NAd3eZy85oCri6ywwMin+h3KVqX4bVudovfCS1u8o79IDLZfrFZkmzm2 suTNzRwLXWyQtjH3mt1UrxZlY+wN6IpYtN7QBGXGXE+enpWyDQ/IEpQOqKPqKz/Q6ZQ2 5w7f0zPB9pJ+c4krgMxOuG542F8JWz9t1ld5e1r9b6K6C7eGOxS9aehchJs+W1Rs/+1q YLvdvohXTH4esRaHa4PVkNdflvK3f3HW2O2T1R1z5oxo7TUboj+BgLclW/Ze2sHl3B9g MSPRLhzKn81QY/zGNioaCoN7P/Zl2n1rYKKiPzq0q83lu6ek6Ir61Qa9ELwTFskzO7Uq kK5A== X-Gm-Message-State: AOAM531QDsBSz8jNsRPWEZy7+pxC++3uo8wpZBsGe2HdDsFpL6E+dR0/ ZQ1+Axn5IYE4227E8MgRK1o9evCC052mbQ== X-Received: by 2002:a17:902:b10d:b029:ec:b5c2:5724 with SMTP id q13-20020a170902b10db02900ecb5c25724mr16132894plr.2.1619405630267; Sun, 25 Apr 2021 19:53:50 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 22/25] linux-user/sparc: Add 64-bit support to fpu save/restore Date: Sun, 25 Apr 2021 19:53:31 -0700 Message-Id: <20210426025334.1168495-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62c; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" 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 --- linux-user/sparc/signal.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 0ff57af43d..41a8b33bac 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -44,6 +44,12 @@ struct target_stackf { }; 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 }; struct target_signal_frame { @@ -167,21 +174,50 @@ static void save_fpu(struct target_siginfo_fpu *fpu, CPUSPARCState *env) { int i; +#ifdef TARGET_SPARC64 + for (i = 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 = 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 } static void restore_fpu(struct target_siginfo_fpu *fpu, CPUSPARCState *env) { int i; +#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 = 0; i < 16; ++i) { + __get_user(env->fpr[i].ll, &fpu->si_double_regs[i]); + } + } + if (fprs & FPRS_DU) { + for (i = 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 |= fprs; +#else for (i = 0; i < 16; ++i) { __get_user(env->fpr[i].ll, &fpu->si_double_regs[i]); } __get_user(env->fsr, &fpu->si_fsr); +#endif } void setup_frame(int sig, struct target_sigaction *ka, From patchwork Mon Apr 26 02:53:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427508 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3329244jao; Sun, 25 Apr 2021 20:09:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzgCBTlj7IXig6/0uCrAizQIE86de+abHN5Ba2dJEpjQoztMJyyZ1dynnLTqBQFP256kvqA X-Received: by 2002:a05:622a:89:: with SMTP id o9mr14694069qtw.14.1619406564230; Sun, 25 Apr 2021 20:09:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406564; cv=none; d=google.com; s=arc-20160816; b=m8AAFb7as5jJtckZQJrsaMAKCuKVsRofcD4VDfA0iSVU+GGVzmUBP6zAhHTNvWm819 RQI7cuBjdkJoKe9UdfCdQEQdO2Xt3exQ+BlnRcCCyvGvX6TSN0NYLGBP728bFsp6Fz0w uzqMaji8juvSPseK9Xfv+Xo2PUJxTEFjt9AZZNjGeDQcywEsFCQEH5GVgCb0Zugp5Z6Y 3HEWv2HuPIImMY8iceafZ9kEhOTsdpVMftKYDB1DnxYQ+aXMxnVsQpz5YGnU++eNq7Vr /mGcsyhkWde8pRAsWPnO/PNPazNlJc+HdigppWXF/OtGsbZDN4I65ia9bgqoSYeEk3wc 5W3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=SmrYBduu8XiD8xaK9Yr5agU3X7gzZZGLVjMDIyMBOdY=; b=sH7XvFAuENf+zDC0wUDjBltldIapuUD1UFFXijzxFSI6Su8oEwa6gKEIps0R69ZISN Vf6gz0+G1J34GkxO1gSpwJzPbPAytX3MrJT6wiuJtxUba+bPNnriIslihRee/AsbVxRi BPJItqBQ0hDicNwoJwRfRoLp/oIdrSentmV/0TmVGjZX308xkGTYaMjSHNlwhF1awi/2 XoYJ//CZT/JHIJx6tepd/1u3rSBmIwv51pMY6LEJEmEL0841a4rgSmlQkicdO/g0cs4A pxEb6X12D2TtRrkeqsbAiO00zVita1KCWjQpTp3MAvdRWUSdWgZ3MA5nFNAtHi2JvL9E HmoA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XbhoGFb1; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id x11si12993891qtw.25.2021.04.25.20.09.24 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:09:24 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XbhoGFb1; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:36936 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larch-00006a-JH for patch@linaro.org; Sun, 25 Apr 2021 23:09:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60292) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNr-0008Dc-Mi for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:03 -0400 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]:52198) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNg-0007ch-2W for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:03 -0400 Received: by mail-pj1-x1034.google.com with SMTP id lt13so17272959pjb.1 for ; Sun, 25 Apr 2021 19:53:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=SmrYBduu8XiD8xaK9Yr5agU3X7gzZZGLVjMDIyMBOdY=; b=XbhoGFb1F1DxIiJmy6IQL8RF/T/rqUap2pcpauGbmlBnL6y2tw24y+9bFQH8PZAE16 03aIjoCAFed0zb164uG5lD2B3VMRL8NCiOgmJisg+KtLwqXUBXpKB3f1hFKt1IX3Vjsu ZCoOBFXoQm0p9KCSaZLicapgYCXRqu6zW5fDkxtTDx9SOD3nyc6XqFH/Kzw0KllYfL56 zILHbyblwuIyPKc73SYlvQF4h4u1jZ1KKTAMiCWU5BA6seZ1KG8JBYyzU6TykJzcgflE /ZVOmNBpbUDT4kfps46cb1Fgh47zc/VByu3LgHAt80N+wCj35vuQFKTPmOkSYkFlOH01 +OYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SmrYBduu8XiD8xaK9Yr5agU3X7gzZZGLVjMDIyMBOdY=; b=VouEGIA1BBgzcu/+x+WIbWfP9dkVQETB9mGJWoiyw1nuCpZEPhjo1nli1+mEUWOGDc vB5lzXvasjvcy+bsWVoS7cBpHnjKQG5t4eDSvJePLkmITwY17Xo2okrhB7uegPJj4I4a q7d1R4LekQzCtfkwUMlRlJW9F8MAjGKBtPKUfPmvIX4RjEh1G0mCFmDkr2tzdBLZg8z2 AosHsnwkmh02go3TAC0TtY1Ye6VyvzREexw+3u37WWwvRG3ABX+C+0Ngu2gib60DxOjb LD8KvIAwBra/twoiplNj0w3DJOTHU7KHf0cgFpaR8sBeoX6KLPEoqi2aXrLxg9AbPlnp nkdw== X-Gm-Message-State: AOAM532P1yvJE9Wec8pVPYZTrSX8ozOP3qm6MvAKV3OqtrL8qekAW0mG 15K6R6iRlu7IlNAWFr16gtpaj5Ba0DJsow== X-Received: by 2002:a17:90a:c58a:: with SMTP id l10mr19305120pjt.134.1619405630843; Sun, 25 Apr 2021 19:53:50 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:50 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 23/25] linux-user/sparc: Implement sparc32 rt signals Date: Sun, 25 Apr 2021 19:53:32 -0700 Message-Id: <20210426025334.1168495-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Richard Henderson --- linux-user/sparc/signal.c | 126 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 122 insertions(+), 4 deletions(-) -- 2.25.1 diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 41a8b33bac..362993da02 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; }; +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 = sizeof(*sf) + sizeof(struct target_siginfo_fpu); + + sf_addr = get_sigframe(ka, env, sf_size); + trace_user_setup_rt_frame(env, sf_addr); + + sf = 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] = sf_addr; + env->regwptr[WREG_O0] = sig; + env->regwptr[WREG_O1] = + sf_addr + offsetof(struct target_rt_signal_frame, info); + env->regwptr[WREG_O2] = + sf_addr + offsetof(struct target_rt_signal_frame, regs); + + /* 4. signal handler */ + env->pc = ka->_sa_handler; + env->npc = env->pc + 4; + + /* 5. return to kernel instructions */ + if (ka->ka_restorer) { + env->regwptr[WREG_O7] = ka->ka_restorer; + } else { + env->regwptr[WREG_O7] = + 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); } long do_sigreturn(CPUSPARCState *env) @@ -356,9 +420,63 @@ long do_sigreturn(CPUSPARCState *env) 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 = NULL; + sigset_t set; + + sf_addr = 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 = tpc; + env->npc = 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; } #if defined(TARGET_SPARC64) && !defined(TARGET_ABI32) From patchwork Mon Apr 26 02:53:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427510 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3329746jao; Sun, 25 Apr 2021 20:10:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxjWbL6k/Lk9OZd9LTYXaSo3QVn7X/D+pD8J3l5J0n17U7jM+Rvfj7Cj9PFBnkCPVbs/IY1 X-Received: by 2002:a05:620a:1657:: with SMTP id c23mr15115615qko.264.1619406632612; Sun, 25 Apr 2021 20:10:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406632; cv=none; d=google.com; s=arc-20160816; b=D4dXAh74dhBabzBHY6jX4wJTmhC6rw+9oHCqNG+7rEvVXuNxt6HFCJG7oHLaHS2qAU 3ArvDx0uKC3PSLHNeofMVPh69L5PSbxLSkXJyT3rcas4Jl9OpyATrB3gxBUE9DWaqoxz d/RC7YbBbaeOOQQKiCTM8HJkKAJMhi/LxNj8X9MEm0YKnqONbHtpfikuTwQq8sH+ElRh 1l1MR3WtiTnalfa5OPGUglICal1l+omf0pUQ+zE34RazrdxZw9Es36e/cmSyWeoFypaG cNqaIl6SoIbO0UJ2sgMAWv9HSdhyb8xLH3F80z3DrXasJs8fyrEl89ERt+UTyjF4Ucj1 NakA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=4dEXnmO9hOXDvdXXk+ajJvzuRRReNQGYxLFLm0Cm/fM=; b=LIKM16robajnNXL4CJkLeeO4tU9qDKgPIWv0wPsR1/RFpiQd7vY0MvDyEmlCsiH5I5 wyD7v94hyIwxDKSlp5b6st7LJTRzYFrec4qYS5hy9JOjisMHokRmeuSZiKzLz5f6hBEw 3hwNYtS7+TK91TJ4xEK5gtqdELIniLS1gx3QUDA5UTMrsayyq7NESejXF/dbVfiGNqOz j4VBcDHFtDLh0hA72K71K36Pcj5YYfapXB9gDdAYgtjrd9t/WSpFnbiB6XVF4U909MT/ u5mPIqCT+8cbwNv66L4j8V3TU40zKkjJUvv94sIx7WBZxFoOn4lDeQ3jcQGAjaIQ5kno lL/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Um/068ti"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id f3si10080154qth.90.2021.04.25.20.10.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:10:32 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Um/068ti"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:37598 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lardn-0000Nz-Tz for patch@linaro.org; Sun, 25 Apr 2021 23:10:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60288) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNq-0008AV-IH for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:02 -0400 Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]:41763) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNj-0007cn-6f for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:02 -0400 Received: by mail-pf1-x42a.google.com with SMTP id w6so23453055pfc.8 for ; Sun, 25 Apr 2021 19:53:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=4dEXnmO9hOXDvdXXk+ajJvzuRRReNQGYxLFLm0Cm/fM=; b=Um/068tipITshPHgK2tZAuhMnI1NFoAyU5M5dq5GdVoG1X4Nt9iGd1CBtajD3Qjyb2 1tS8wYWBjgWfqvxP0fVaPHUigkkfDMieRRPymYNGycHrosrXziBN2j/beYp6IEtn9CjD Nnpb51OP+HKejgSoHd77+4ZH+zIAUSG4OYOMmY/UXEma7iPIHvheoD5tN+qaDfDXkeEE 1aKEQkyWxBs8aLhj79yvMGQz7gegCc6NS6kHexqrdPGRGeCymIUt5TVgmyTirpC5PkxQ gcbJehKoISgy0dVssmhQ5gg5lx04+2RSvp6y1R/kn3wSR1qQL/DCFYeVi0lbtiyqLkED d3sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4dEXnmO9hOXDvdXXk+ajJvzuRRReNQGYxLFLm0Cm/fM=; b=OexHmtYWxLZmPXr+rtE6hQmz5NmY+5pphFSNi11r3McjR2FFcGXJb/n44aR8QWmcNM qL+AvtrrqteFPJNCbmxZubiEpRrZ83jSiZA+3q7ja3t9nK4T9sLvpywCvz0x/TwMRkIG jOSMk7N2Q9y7vPadumOjZSDq0a+3S82MPGy660OrMrh+khpAS9I1YkK7obcGKXClO1g6 17OhTzUkNf1AZPB8pUyjnECxqqYhL1QDVfQXzGiLL+PC7uw6Gdm0ydI/m3FFVQ0Uuptq YFNUCxa09Xs2AzMBVOXm/vCCaHOYVwqkrGAuRxVize/J4UQwoOMUKGI989BilqrS5SGR FuHg== X-Gm-Message-State: AOAM532KYFNjDyyVdVFYtXu9pH3TVxreod2n4mdUHUFf+hmoqfwgNxLX O5OFyTrB04I9tyshAEQhJvrM1pk+6yBdGQ== X-Received: by 2002:aa7:8001:0:b029:272:7347:9b58 with SMTP id j1-20020aa780010000b029027273479b58mr8593380pfi.1.1619405631548; Sun, 25 Apr 2021 19:53:51 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 24/25] linux-user/sparc: Implement sparc64 rt signals Date: Sun, 25 Apr 2021 19:53:33 -0700 Message-Id: <20210426025334.1168495-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::42a; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Signed-off-by: Richard Henderson --- linux-user/sparc/target_signal.h | 2 ++ linux-user/sparc/signal.c | 27 ++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) -- 2.25.1 diff --git a/linux-user/sparc/target_signal.h b/linux-user/sparc/target_signal.h index 911a3f5af5..34f9a12519 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 +#ifdef TARGET_ABI32 #define TARGET_ARCH_HAS_SETUP_FRAME +#endif /* bit-flags */ #define TARGET_SS_AUTODISARM (1U << 31) /* disable sas during sighandling */ diff --git a/linux-user/sparc/signal.c b/linux-user/sparc/signal.c index 362993da02..0cc3db5570 100644 --- a/linux-user/sparc/signal.c +++ b/linux-user/sparc/signal.c @@ -61,6 +61,7 @@ struct target_siginfo_fpu { #endif }; +#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 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; }; @@ -232,6 +240,7 @@ static void restore_fpu(struct target_siginfo_fpu *fpu, CPUSPARCState *env) #endif } +#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 */ 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); +#ifdef TARGET_ABI32 __put_user(0, &sf->extra_size); +#endif /* 3. signal handler back-trampoline and parameters */ - env->regwptr[WREG_SP] = sf_addr; + env->regwptr[WREG_SP] = sf_addr - TARGET_STACK_BIAS; env->regwptr[WREG_O0] = sig; env->regwptr[WREG_O1] = sf_addr + offsetof(struct target_rt_signal_frame, info); +#ifdef TARGET_ABI32 env->regwptr[WREG_O2] = sf_addr + offsetof(struct target_rt_signal_frame, regs); +#else + env->regwptr[WREG_O2] = env->regwptr[WREG_O1]; +#endif /* 4. signal handler */ env->pc = ka->_sa_handler; env->npc = env->pc + 4; /* 5. return to kernel instructions */ +#ifdef TARGET_ABI32 if (ka->ka_restorer) { env->regwptr[WREG_O7] = 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] = ka->ka_restorer; +#endif + unlock_user(sf, sf_addr, sf_size); } long do_sigreturn(CPUSPARCState *env) { +#ifdef TARGET_ARCH_HAS_SETUP_FRAME abi_ulong sf_addr; struct target_signal_frame *sf = 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 } long do_rt_sigreturn(CPUSPARCState *env) From patchwork Mon Apr 26 02:53:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 427505 Delivered-To: patch@linaro.org Received: by 2002:a02:c901:0:0:0:0:0 with SMTP id t1csp3328317jao; Sun, 25 Apr 2021 20:07:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxuf/A8NMtY+9NabfzPVt7rrITweMXZrb3mbo0zdh57LzABRDb8h/3Ut+sclBrK32WFIb+H X-Received: by 2002:a37:a34b:: with SMTP id m72mr14843957qke.92.1619406453320; Sun, 25 Apr 2021 20:07:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619406453; cv=none; d=google.com; s=arc-20160816; b=05W2FinoIkta+yGp/1ndtjes7SmmLllxUFyAtrIXKzroSNqP0JLfpF6nnQpzzdb1ZP z6tab2e68nwxWyZcDDrcge7/wJX1ZtSAgm/GfUHsQsTeXjNkOlcWB63JJ9f5kcYAtun6 zJDFLaw/BeWxrSCjIi6/uNPI7SUmbPMMjlpHkf30/lHQuQsKKaIF3QEe46qwUZx2LYQn 99LfYEyLU1QUq+t5VrCTi3NqQBTLqkfGdrH7yKk7/M67C8U289os4bm13MroSVNhFro7 UmhSIgPaIJmKBJz62qzznnjFKRgRTsGkdAINZfnsL5TiFYDHanuYa+eswp6c7cGSCee7 upWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=czFZI/NFQntzpjxoTjv678VOeQ01AF5BMV5dgR6vLHY=; b=cozks8Evcu+uBhaz+fQRnr/aigY3glkrvTyiMsYoed7WPZpsutWoqaElfT9jX+PfX2 ScfUuoWATeyWVpdBwwDMsn6qrBAMwakaoKjD8srBm0lPoUMKMwaGXbSmOns2WK0AgulB mQkOq2NnUJWfuQNeFggwxJtpb037U6QlqcypXAvtO+IHuyFrr72QwiMqysn/pfs0VEnG sS5mjRRntT6Hl8Xbz2b0+dSYI++Ks6xCwIUqjoq/1D5Qft0HQuzU6blj10LySX3Wfa8c GejnLMrADEi7iAM8gpQZ/a2uQnhJnPTL3l67Kwf7CpOWRljQkOuyIDXsD7aUCDnitf60 UVNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gF4y+2hv; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id b13si3478899qka.42.2021.04.25.20.07.33 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 25 Apr 2021 20:07:33 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gF4y+2hv; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:57010 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1larau-00056t-ON for patch@linaro.org; Sun, 25 Apr 2021 23:07:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60290) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1larNq-0008Au-Nn for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:02 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]:33431) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1larNj-0007cs-70 for qemu-devel@nongnu.org; Sun, 25 Apr 2021 22:54:02 -0400 Received: by mail-pl1-x62a.google.com with SMTP id n10so16989650plc.0 for ; Sun, 25 Apr 2021 19:53:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=czFZI/NFQntzpjxoTjv678VOeQ01AF5BMV5dgR6vLHY=; b=gF4y+2hvbJcjf9qwhvVtqH3iUAVH6ow8Bju48DBUwffmpefn4OhXnsRfomMU2oyM7n a7h2hMFsqmMZ6lTIe6vQzFFo3uBkdAFJcoGJz6VzMXsVwRTvm4jPzksy9wV8FroNBU3N uLxgB0oV55bGSLTFw9h0VNMbQ82A/Uwu8qk42df7Ps3eg15w8sAgi6yaAX7+zIx//93u Hjgh3jCb3w+ciiJLYSqyFU+JS+CD/ZDV/ghRT/nwJfOzkslaWlOA76MiLA/xvtsK6sA8 eHyHJ2ZAGI8G+P7pca/Ty4Ch+Vc6Fg5FiLNkaHeoH1xCXssH+k9nAIktipMDhe8xK2W7 jGMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=czFZI/NFQntzpjxoTjv678VOeQ01AF5BMV5dgR6vLHY=; b=VZWPP1yAhTPsAQzszNmfrTcCUykR5Yjymg4pFS/VsAh+NjGSEEvdnHJgh7Ns62nWey bTOK2PmLEdNlXzYKQN/ie4cRzbBpD69+gkIoIa0fMn8S0+bMv/WrLeQFrQTEKAszRexC arVPMBCo6id4GgyI7UdatIwnQUTkd5N6bhnk5VtCXjZeM/xCa7Z+9xAclktOI/yx+DyR yIsgu1L+VVYFIVwf715An+gcHAZL03l9riQEMov4wEnXBy2l8JdrO/zu85oPlgtnP26v ciEYdn1aqXIx37wSScd04yzEmLqZWmwMVN6/2KH2WLR47P/SCaw4HjLJ8d2IJdLLDLhg yC7Q== X-Gm-Message-State: AOAM5320qi2P59dm6Vjg056BbM8pxs5x3t/qQdnw2vZj/w6FAQIo+J56 bs3HOtFj+dKZ4odAKDer7a9xzd3tYJjFTg== X-Received: by 2002:a17:90a:c28f:: with SMTP id f15mr1233676pjt.30.1619405632042; Sun, 25 Apr 2021 19:53:52 -0700 (PDT) Received: from localhost.localdomain ([71.212.144.24]) by smtp.gmail.com with ESMTPSA id e23sm9805680pgg.76.2021.04.25.19.53.51 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Apr 2021 19:53:51 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PATCH v2 25/25] tests/tcg/sparc64: Re-enable linux-test Date: Sun, 25 Apr 2021 19:53:34 -0700 Message-Id: <20210426025334.1168495-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210426025334.1168495-1-richard.henderson@linaro.org> References: <20210426025334.1168495-1-richard.henderson@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::62a; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" It passes now that we support signals properly. Signed-off-by: Richard Henderson --- tests/tcg/sparc64/Makefile.target | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) -- 2.25.1 diff --git a/tests/tcg/sparc64/Makefile.target b/tests/tcg/sparc64/Makefile.target index 5bd7f90583..408dace783 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 type (ret=-1, errno=92/Value too large for defined data type) -run-linux-test: linux-test - $(call skip-test, $<, "BROKEN") +# sparc specific tweaks # On Sparc64 Linux support 8k pages EXTRA_RUNS+=run-test-mmap-8192