Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp3525908pxb; Mon, 4 Oct 2021 04:21:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy/usz45f2zDALU/JzXnEjQL4S2Q9VQzYC7siSX9xfH70GHjmG0n5YaWN0gQgm9tZzusg57 X-Received: by 2002:aa7:cd99:: with SMTP id x25mr17366950edv.266.1633346487885; Mon, 04 Oct 2021 04:21:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633346487; cv=none; d=google.com; s=arc-20160816; b=wNxmMpDeg6/8IzK0s2siDwoOizGbhxIHb+0tGQp+8oErYzDtx6PXZS1gYtDkBl5Wd6 RJ1u2avkRr2LQsxnD9irZ1Fp14cfa7nbLClVgdjuF6K94KNlnH5c3ucMrujBTLyHvdgQ WA6yh6oCdmD+9HiAeR2PlI4OMEPPQHUvuTVSxuwX9n5+65xMZ+q9I899K/ebm3PDcMsR 1Dcm9Q428hIajn6EWthWA6G+Ir4P8D7XFkl2T5vs5TMCA6FSjw5GymrXoi0T65CIM08D /GcwQbYIGPYrY5ni+7qfA1RO8Xw1yYtPSizX0IpH9GO6i2QBCoWyKxHe921nJEZfJ3SW iaiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=8QMsTfOICfZ+T4CJbuI9SrLwFTpu109i4AuvbzdpufE=; b=U+/q59GNosHyKSqbnGrKm0gGspp48gfjjWRYjU+1Dcb3A0UkC1iELFZ/znD6twY8d4 fP6OltYB9itMz5KOHQXqosPXgTpqWSSs+MzyGtPyR0/i+eIBZV3dkZuOn77WXGEZ3RNm 5ilbgE9dFdA9gw0RUfVXOU8sxUKoMjFike/O6ci4prfD9Q5GbqjZmPH5m4uo0rudxUEZ qNJNjExT7EoX5CcMesT9jK94xTVyEHC2pjofgGGHbbg6QxntWzesQGWN9ryr+A2Z+1S8 J98arCFIyAFp3XNC8OB26HVzClc4t5exeBDfg+a3UIecueV7CQ3qW+0BvwRF6JqgtD2k PJFw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id qw38si21810720ejc.293.2021.10.04.04.21.01; Mon, 04 Oct 2021 04:21:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232968AbhJDLTy (ORCPT + 99 others); Mon, 4 Oct 2021 07:19:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:60628 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232395AbhJDLTv (ORCPT ); Mon, 4 Oct 2021 07:19:51 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id B488F6124C; Mon, 4 Oct 2021 11:18:00 +0000 (UTC) Date: Mon, 4 Oct 2021 13:17:58 +0200 From: Christian Brauner To: Arnd Bergmann Cc: Palmer Dabbelt , linux-riscv , Paul Walmsley , Albert Ou , Christian Brauner , Linux Kernel Mailing List , Android Kernel Team , Palmer Dabbelt Subject: Re: [PATCH] RISC-V: Include clone3() on rv32 Message-ID: <20211004111758.rl2zq6l575hmcv22@wittgenstein> References: <20211003002120.198752-1-palmer@dabbelt.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Oct 03, 2021 at 05:30:24PM +0200, Arnd Bergmann wrote: > On Sun, Oct 3, 2021 at 2:58 AM Palmer Dabbelt wrote: > > > > From: Palmer Dabbelt > > > > As far as I can tell this should be enabled on rv32 as well, I'm not > > sure why it's rv64-only. checksyscalls is complaining about our lack of > > clone3() on rv32. > > > > Fixes: 56ac5e213933 ("riscv: enable sys_clone3 syscall for rv64") > > Signed-off-by: Palmer Dabbelt > > We should probably reverse the polarity of this symbol and force > architectures that don't implement it properly to say they don't > have it, but for now, it definitely makes sense to treat this the same > way on 32-bit and 64-bit risc-v. I think we had that discussion back when I added it and I think I even proposed that or you did but then we settled on __ARCH_WANT_SYS_CLONE3. Most likely because it fell in line with the other __ARCH_WANT_SYS_{CLONE,FORK}. I think at this point its alpha, ia64, nios, sparc, and sh that don't implement it. For some it looks trivial at first glance at least (Fwiw, nios implements sys_clone() but doesn't select __ARCH_WANT_SYS_CLONE3): diff --git a/arch/nios2/include/uapi/asm/unistd.h b/arch/nios2/include/uapi/asm/unistd.h index 0b4bb1d41b28..6c4f45abd3ab 100644 --- a/arch/nios2/include/uapi/asm/unistd.h +++ b/arch/nios2/include/uapi/asm/unistd.h @@ -18,6 +18,7 @@ #define sys_mmap2 sys_mmap_pgoff +#define __ARCH_WANT_SYS_CLONE3 #define __ARCH_WANT_RENAMEAT #define __ARCH_WANT_STAT64 #define __ARCH_WANT_SET_GET_RLIMIT diff --git a/arch/nios2/kernel/entry.S b/arch/nios2/kernel/entry.S index 0794cd7803df..c1804bda8259 100644 --- a/arch/nios2/kernel/entry.S +++ b/arch/nios2/kernel/entry.S @@ -396,6 +396,15 @@ ENTRY(sys_clone) RESTORE_SWITCH_STACK ret +/* + * int clone3(struct clone_args __user *, uargs, size_t, size) + */ +ENTRY(sys_clone3) + SAVE_SWITCH_STACK + call sys_clone3 + RESTORE_SWITCH_STACK + ret + ENTRY(sys_rt_sigreturn) SAVE_SWITCH_STACK mov r4, sp