From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3B580C44508 for ; Tue, 14 Jul 2026 15:41:44 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [127.0.0.1]) by lists.ozlabs.org (Postfix) with ESMTP id 4h03Sk4HSsz2yH5; Wed, 15 Jul 2026 01:41:42 +1000 (AEST) Authentication-Results: lists.ozlabs.org; arc=none smtp.remote-ip=80.86.107.70 ARC-Seal: i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1784043702; cv=none; b=DCDnDCkAqGmfIM/bH1xn62ztEGFirMYiqN8kO8OiCgbR7sWh34G/9hBoIWg2t7QTHWA5vixUngJJ7FJJiFVjNvNZlFCzShTfhH4j4VE99Z1M8lHoBDDPez0ijwQWZOLrrbBdcjZbpCABx+5nFHM4BpsV3sKG6pMB1okRAdfIMzvk9AC5p01GI1VlrVtlB5yTEAgHkfhGxNaEHeNYx5ztQKrJWwfQLdsWK2WQeT58jVJoGQdn1R1XHTtEUDf86WI/f0wmssiJIxucyHb2/A7Z8CiypqUdkHhInw9JbTwWYeLPsQUI8+LdZ1wYDTe8rkafKh0e4XJ1UwoSzF8zpoz3PQ== ARC-Message-Signature: i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1784043702; c=relaxed/relaxed; bh=hKhKnBtVoVUk/sXTgCEmjbmfk+iGn8mR/E/A1x3cNyk=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=NxmZAqrZBaNUzkrb4JWVOsVHIP1grLE8RoySfDKeAp8ayyz/48UKmkFeoXD6eBT9X1slaz/kHsK1M85UIIGx4UZcxtMrjUc/7KKVGESMDJH7NhDBPOQLZvsy56wzMH7TSbR4E+o8dQHh6rQHOMFDUJVI0UEOPXOU3k96BsaScxxNGkSVljRgMSG2u2YyNC+VuNf/eHMpFVPticu1bDpJPlQ/tttM8ovqRQlaazaRyOGPofQAepLzpgnBzDMZpDkhjSow79URItN1IG2y6BMSV5iveSy53qZYcJ0LECGtTQuyzG9ZknhM5vbTmuYmRlGiQ5UjUN1RXs1aS6sgmOd25Q== ARC-Authentication-Results: i=1; lists.ozlabs.org; dmarc=pass (p=reject dis=none) header.from=rendec.net; dkim=pass (2048-bit key; unprotected) header.d=rendec.net header.i=@rendec.net header.a=rsa-sha256 header.s=default header.b=rAqaJqFF; dkim-atps=neutral; spf=pass (client-ip=80.86.107.70; helo=mail.mindbit.ro; envelope-from=radu@rendec.net; receiver=lists.ozlabs.org) smtp.mailfrom=rendec.net Authentication-Results: lists.ozlabs.org; dmarc=pass (p=reject dis=none) header.from=rendec.net Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=rendec.net header.i=@rendec.net header.a=rsa-sha256 header.s=default header.b=rAqaJqFF; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=rendec.net (client-ip=80.86.107.70; helo=mail.mindbit.ro; envelope-from=radu@rendec.net; receiver=lists.ozlabs.org) Received: from mail.mindbit.ro (xs1.mindbit.ro [80.86.107.70]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4h03Sj4bY0z2y7W for ; Wed, 15 Jul 2026 01:41:41 +1000 (AEST) Received: from bat.kanata.rendec.net (unknown [24.114.105.230]) by mail.mindbit.ro (Postfix) with ESMTPSA id 5F076C2C75; Tue, 14 Jul 2026 18:41:28 +0300 (EEST) DKIM-Filter: OpenDKIM Filter v2.11.0 mail.mindbit.ro 5F076C2C75 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rendec.net; s=default; t=1784043698; bh=hKhKnBtVoVUk/sXTgCEmjbmfk+iGn8mR/E/A1x3cNyk=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=rAqaJqFFLrO6y6tNVaFvU6vIVcy3LmKR3vuzw4P0LZXbAJVJVm0ALDzL8TymM6hBv CET/mK/kqUWiSZemfVMilwSqWFX7NQXXVpNQ/Te8bp3aMO1QuzmgMSY/iDK1H3oLI+ b54jOKhx6ngl0C+7U/vHITetf6JHV6RPlMzsTCj07sqnDOQYY9HRrwARS76jc64IHh JgxemAMZU4ZbJH9EgYX9u416U/McWH+76dZ34vUPOoUw4O7hFqTWBFLZhpRbtKSpsT lqzJ3VpJ/iGQMdziAOF0ZQPwuFo3eBNqkoCEX46BG6CZbIkZNRCTXHdambhKsn3JM6 YjYhQXSomeepg== Message-ID: <0b9b0da3dd27df230038bc87efa8ed43bb02e740.camel@rendec.net> Subject: Re: [patch 3/4] entry: Make return type of syscall_trace_enter() bool From: Radu Rendec To: Thomas Gleixner , LKML Cc: Michal =?ISO-8859-1?Q?Such=E1nek?= , Michael Ellerman , Shrikanth Hegde , linuxppc-dev@lists.ozlabs.org, Huacai Chen , loongarch@lists.linux.dev, Paul Walmsley , Palmer Dabbelt , linux-riscv@lists.infradead.org, Sven Schnelle , linux-s390@vger.kernel.org, x86@kernel.org, Mark Rutland , Jinjie Ruan , Magnus Lindholm , "Mukesh Kumar Chaurasiya (IBM)" , Jonathan Corbet Date: Tue, 14 Jul 2026 11:41:24 -0400 In-Reply-To: <20260712141346.699072205@kernel.org> References: <20260712134433.549076055@kernel.org> <20260712141346.699072205@kernel.org> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.58.3 (3.58.3-1.fc43) X-Mailing-List: linuxppc-dev@lists.ozlabs.org List-Id: List-Help: List-Owner: List-Post: List-Archive: , List-Subscribe: , , List-Unsubscribe: Precedence: list MIME-Version: 1.0 On Sun, 2026-07-12 at 23:25 +0200, Thomas Gleixner wrote: > From: Thomas Gleixner >=20 > This prepares for changing the return types of > syscall_enter_from_user_mode[_work]() to bool, which in turn separates th= e > decision of invoking the syscall from the syscall number, which might hav= e > been changed in the call by ptrace, seccomp, tracing. >=20 > Signed-off-by: Thomas Gleixner > --- > =C2=A0include/linux/entry-common.h |=C2=A0=C2=A0 18 +++++++++++------- > =C2=A01 file changed, 11 insertions(+), 7 deletions(-) > --- a/include/linux/entry-common.h > +++ b/include/linux/entry-common.h > @@ -72,7 +72,7 @@ static __always_inline long syscall_trac > =C2=A0 */ > =C2=A0 if (work & SYSCALL_WORK_SYSCALL_USER_DISPATCH) { > =C2=A0 if (syscall_user_dispatch(regs)) > - return -1L; > + return false; > =C2=A0 } > =C2=A0 > =C2=A0 /* > @@ -87,13 +87,13 @@ static __always_inline long syscall_trac > =C2=A0 if (work & (SYSCALL_WORK_SYSCALL_TRACE | SYSCALL_WORK_SYSCALL_EMU)= ) { > =C2=A0 if (!arch_ptrace_report_syscall_permit_entry(regs) || > =C2=A0 =C2=A0=C2=A0=C2=A0 (work & SYSCALL_WORK_SYSCALL_EMU)) > - return -1L; > + return false; > =C2=A0 } > =C2=A0 > =C2=A0 /* Do seccomp after ptrace, to catch any tracer changes. */ > =C2=A0 if (work & SYSCALL_WORK_SECCOMP) { > =C2=A0 if (!__seccomp_permit_syscall()) > - return -1L; > + return false; > =C2=A0 } > =C2=A0 > =C2=A0 if (unlikely(work & SYSCALL_WORK_SYSCALL_TRACEPOINT)) > @@ -102,8 +102,7 @@ static __always_inline long syscall_trac > =C2=A0 if (unlikely(audit_context())) > =C2=A0 syscall_enter_audit(regs); > =C2=A0 > - /* Either of the above might have changed the syscall number */ > - return syscall_get_nr(current, regs); > + return true; > =C2=A0} > =C2=A0 > =C2=A0/** > @@ -133,8 +132,13 @@ static __always_inline long syscall_ente > =C2=A0{ > =C2=A0 unsigned long work =3D READ_ONCE(current_thread_info()->syscall_wo= rk); > =C2=A0 > - if (work & SYSCALL_WORK_ENTER) > - syscall =3D syscall_trace_enter(regs, work, syscall); > + if (work & SYSCALL_WORK_ENTER) { > + if (!syscall_trace_enter(regs, work, syscall)) > + return -1L; > + > + /* Reread the syscall number as it might have been modified */ nit: I would add "in the call above by ptrace, seccomp, tracing" - which is actually in your commit message, but would make it immediately obvious when reading the code. > + syscall =3D syscall_get_nr(current, regs); > + } > =C2=A0 > =C2=A0 return syscall; > =C2=A0} Reviewed-by: Radu Rendec