From patchwork Thu Jul 4 14:36:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 1956913 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=cVHkpDSp; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=S1htzPLc; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=patchwork.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WFK6K4sWhz1xqb for ; Fri, 5 Jul 2024 00:39:21 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=9PxtIJEFFPg76wDn7nljEJI4cL6k79fwnVhuz4w8DLc=; b=cVHkpDSpo1TnFg uJVo9cZFQVTF8jGussjUose0UL9EEKg12CWH7qbNkzap5qqLqYEwdEUDNJQYjD3xNgr996JP3lmXV 7bwVeKBomaHarAXlWXYqz4KFpN3Di2QCNsok1eiUjd7Eil4+RxrBULppIh1CTzX5I1NnlkhrvuN/q 7aUKZxajGfKKtNQjFoCa+xTlddcBas63+3g+wdsQ1LwDVnNEVQPPK3l9vAh5mwRD2f3/L2/VS8KZg aOFwdKL5WQ5Ur4+eQ+KctVKoHvnXUS5DNeF/QvR6X4B9G5MgKMer+o5q4KtEfWsn13FrCr5FbTmPn TQJBcNmhYzbZSxUaHwvw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sPNcG-0000000DVzb-1bQr; Thu, 04 Jul 2024 14:39:20 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sPNaf-0000000DUpR-2pkG; Thu, 04 Jul 2024 14:37:43 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 28A0C627A9; Thu, 4 Jul 2024 14:37:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A9DEFC4AF13; Thu, 4 Jul 2024 14:37:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1720103860; bh=SGxdMT+s6TdyFUJTUykvjKQsqRmp3AbcEBt+9JQTwHs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=S1htzPLcjs7pU16Tmrqttia/HNLUDban3aE6r5b02ODibeyQMutURMDJItDEDIVhf AI6n7Kh7lHx2hFh6wAavVYu447eqoscgcQJ76Z6IsmPRzxb8rRyYY7thZGrnJIozAJ X7ozCtr3cbAZKq262p8lYtXTuZ29fMxAjOgLS9ydB6ZxZix/ZGVaUYWcaimYJhJ0TV 3/RpNKQNl+g3L/RcWXW/rVfEZDB2IA+5qhwRX2I4802GfFz6GopJBOsiQXZyY4brNC 5VzgU4QgLA/eJjtaHKF7ODNFrkh+RSMFlFo0E5dGHyAFpbN2Lz5vabrUMcsYlrcvTv RKaMOdejnyfEg== From: Arnd Bergmann To: linux-arch@vger.kernel.org Cc: Arnd Bergmann , Masahiro Yamada , Nathan Chancellor , Nicolas Schier , Vineet Gupta , Russell King , Catalin Marinas , Will Deacon , Guo Ren , Brian Cain , Huacai Chen , WANG Xuerui , Dinh Nguyen , Jonas Bonn , Stefan Kristiansson , Stafford Horne , Paul Walmsley , Palmer Dabbelt , Albert Ou , Rich Felker , John Paul Adrian Glaubitz , "David S. Miller" , Andreas Larsson , Christian Brauner , Mark Rutland , linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, loongarch@lists.linux.dev, linux-openrisc@vger.kernel.org, linux-riscv@lists.infradead.org Subject: [PATCH 08/17] arc: convert to generic syscall table Date: Thu, 4 Jul 2024 16:36:02 +0200 Message-Id: <20240704143611.2979589-9-arnd@kernel.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240704143611.2979589-1-arnd@kernel.org> References: <20240704143611.2979589-1-arnd@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240704_073741_841334_0257365E X-CRM114-Status: GOOD ( 19.64 ) X-Spam-Score: -2.5 (--) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: From: Arnd Bergmann The uapi/asm/unistd_32.h and asm/syscall_table_32.h headers can now be generated from scripts/syscall.tbl, which makes this consistent with the other architectures that have their own syscall.tbl. Content analysis details: (-2.5 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [2604:1380:4641:c500:0:0:0:1 listed in] [list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender X-BeenThere: linux-snps-arc@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux on Synopsys ARC Processors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Arnd Bergmann The uapi/asm/unistd_32.h and asm/syscall_table_32.h headers can now be generated from scripts/syscall.tbl, which makes this consistent with the other architectures that have their own syscall.tbl. arc has a couple of architecture specific system calls, which I add to the generic table. This for some reason includes the deprecated sys_sysfs() syscall that was presumably added by accident. The time32, renameat, stat64 and rlimit entries in the syscall_abis_32 entry are for system calls that were part of the generic ABI when arch/arc got added but are no longer enabled by default for new architectures. Both the user visible side of asm/unistd.h and the internal syscall table in the kernel should have the same effective contents after this. Signed-off-by: Arnd Bergmann --- arch/arc/include/asm/Kbuild | 2 ++ arch/arc/include/asm/unistd.h | 14 ++++++++++ arch/arc/include/uapi/asm/Kbuild | 2 ++ arch/arc/include/uapi/asm/unistd.h | 43 +----------------------------- arch/arc/kernel/Makefile.syscalls | 3 +++ arch/arc/kernel/sys.c | 5 ++-- scripts/syscall.tbl | 5 ++++ 7 files changed, 30 insertions(+), 44 deletions(-) create mode 100644 arch/arc/include/asm/unistd.h create mode 100644 arch/arc/kernel/Makefile.syscalls diff --git a/arch/arc/include/asm/Kbuild b/arch/arc/include/asm/Kbuild index 3c1afa524b9c..49285a3ce239 100644 --- a/arch/arc/include/asm/Kbuild +++ b/arch/arc/include/asm/Kbuild @@ -1,4 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 +syscall-y += syscall_table_32.h + generic-y += extable.h generic-y += kvm_para.h generic-y += mcs_spinlock.h diff --git a/arch/arc/include/asm/unistd.h b/arch/arc/include/asm/unistd.h new file mode 100644 index 000000000000..211c230d88d6 --- /dev/null +++ b/arch/arc/include/asm/unistd.h @@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef _ASM_ARC_UNISTD_H +#define _ASM_ARC_UNISTD_H + +#include + +#define __ARCH_WANT_STAT64 +#define __ARCH_WANT_SYS_CLONE +#define __ARCH_WANT_SYS_VFORK +#define __ARCH_WANT_SYS_FORK + +#define NR_syscalls __NR_syscalls + +#endif diff --git a/arch/arc/include/uapi/asm/Kbuild b/arch/arc/include/uapi/asm/Kbuild index e78470141932..2501e82a1a0a 100644 --- a/arch/arc/include/uapi/asm/Kbuild +++ b/arch/arc/include/uapi/asm/Kbuild @@ -1,2 +1,4 @@ # SPDX-License-Identifier: GPL-2.0 +syscall-y += unistd_32.h + generic-y += ucontext.h diff --git a/arch/arc/include/uapi/asm/unistd.h b/arch/arc/include/uapi/asm/unistd.h index 5eafa1115162..cb2905c7c5da 100644 --- a/arch/arc/include/uapi/asm/unistd.h +++ b/arch/arc/include/uapi/asm/unistd.h @@ -7,45 +7,4 @@ * published by the Free Software Foundation. */ -/******** no-legacy-syscalls-ABI *******/ - -/* - * Non-typical guard macro to enable inclusion twice in ARCH sys.c - * That is how the Generic syscall wrapper generator works - */ -#if !defined(_UAPI_ASM_ARC_UNISTD_H) || defined(__SYSCALL) -#define _UAPI_ASM_ARC_UNISTD_H - -#define __ARCH_WANT_RENAMEAT -#define __ARCH_WANT_STAT64 -#define __ARCH_WANT_SET_GET_RLIMIT -#define __ARCH_WANT_SYS_EXECVE -#define __ARCH_WANT_SYS_CLONE -#define __ARCH_WANT_SYS_VFORK -#define __ARCH_WANT_SYS_FORK -#define __ARCH_WANT_TIME32_SYSCALLS - -#define sys_mmap2 sys_mmap_pgoff - -#include - -#define NR_syscalls __NR_syscalls - -/* Generic syscall (fs/filesystems.c - lost in asm-generic/unistd.h */ -#define __NR_sysfs (__NR_arch_specific_syscall + 3) - -/* ARC specific syscall */ -#define __NR_cacheflush (__NR_arch_specific_syscall + 0) -#define __NR_arc_settls (__NR_arch_specific_syscall + 1) -#define __NR_arc_gettls (__NR_arch_specific_syscall + 2) -#define __NR_arc_usr_cmpxchg (__NR_arch_specific_syscall + 4) - -__SYSCALL(__NR_cacheflush, sys_cacheflush) -__SYSCALL(__NR_arc_settls, sys_arc_settls) -__SYSCALL(__NR_arc_gettls, sys_arc_gettls) -__SYSCALL(__NR_arc_usr_cmpxchg, sys_arc_usr_cmpxchg) -__SYSCALL(__NR_sysfs, sys_sysfs) - -#undef __SYSCALL - -#endif +#include diff --git a/arch/arc/kernel/Makefile.syscalls b/arch/arc/kernel/Makefile.syscalls new file mode 100644 index 000000000000..391d30ab7a83 --- /dev/null +++ b/arch/arc/kernel/Makefile.syscalls @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0 + +syscall_abis_32 += arc time32 renameat stat64 rlimit diff --git a/arch/arc/kernel/sys.c b/arch/arc/kernel/sys.c index 1069446bdc58..36a2a95c083b 100644 --- a/arch/arc/kernel/sys.c +++ b/arch/arc/kernel/sys.c @@ -8,11 +8,12 @@ #define sys_clone sys_clone_wrapper #define sys_clone3 sys_clone3_wrapper +#define sys_mmap2 sys_mmap_pgoff -#undef __SYSCALL #define __SYSCALL(nr, call) [nr] = (call), +#define __SYSCALL_WITH_COMPAT(nr, native, compat) __SYSCALL(nr, native) void *sys_call_table[NR_syscalls] = { [0 ... NR_syscalls-1] = sys_ni_syscall, -#include +#include }; diff --git a/scripts/syscall.tbl b/scripts/syscall.tbl index 7871bbfa9b58..13f4c79ba5c2 100644 --- a/scripts/syscall.tbl +++ b/scripts/syscall.tbl @@ -288,6 +288,11 @@ 243 time32 recvmmsg sys_recvmmsg_time32 compat_sys_recvmmsg_time32 243 64 recvmmsg sys_recvmmsg # Architectures may provide up to 16 syscalls of their own between 244 and 259 +244 arc cacheflush sys_cacheflush +245 arc arc_settls sys_arc_settls +246 arc arc_gettls sys_arc_gettls +247 arc sysfs sys_sysfs +248 arc arc_usr_cmpxchg sys_arc_usr_cmpxchg 260 time32 wait4 sys_wait4 compat_sys_wait4 260 64 wait4 sys_wait4 261 common prlimit64 sys_prlimit64