From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012056.outbound.protection.outlook.com [40.107.209.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 817DE30B521 for ; Fri, 24 Apr 2026 19:50:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.56 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777060213; cv=fail; b=qifbi9QjI5/+T0Tay8efjm41y25lG+uh0LB9B9cl4SAzk+Jf0O1J192ZKJzr2JyEMpZuK/7jsY3/xvGrVLtr8IPd4qbGNm2jhLWcHvO3DClQZ38oO6Sj9eR1yAknZb5BKnmS30+Lb+gfhSq4BjFHrXyDasjWnNe4PN9PVOch7+0= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777060213; c=relaxed/simple; bh=us41GunJimQuGgygZ+J2jRi1aZ0L7uH3xNCakJPmtsM=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=tnCCZ4hMClAC5GFkqC5y4c+lwBdu602UOM1yinEahSqylrAXNqJ2vKp7Y1EUId/UGCP08PwZPPHe16CgQvVNN6gQBJ8r+NDKpPHXcPaO7D3GHqJsTHy2RtL+9kpcHCYpkb+ZhpADbjVNINbvMPZ3+9lNVnJYaEun1qsTmZg1Fik= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=fail (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=fail (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=XT85UjPd reason="signature verification failed"; arc=fail smtp.client-ip=40.107.209.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="XT85UjPd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PSfKd2jiOkq2XUfG999VTv2YH9Ni79bkav7QirjkNzMHBXZbkcAeAIdPCBLDWLNpeoha+6Kw+HJBTip+B/AfHFfRV5YHFoCK4rKBLJevQ4cdcPZoYem21FSjzh7yo85j4mnPlee2mYqCXtQJ5/L2DHu9DNCeJ0u/xuN6WBGENPmcxF7IJhIqhhwDEI3tvsqJ/67KJiJ6jaiZ9EtWXhlkQ0wWln9NU2pNnoYS1bx2YomJQUofGvFYV5nRi4BVayWwT/8Is8dny5zc1m6jOy4pIeipf4EmD3JbK+D6aIIgTVdXNFItb4o4942F8icXooaYYL2UgMBNcuEe7onDIh1PcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nHdrrPfmz14VlGRksRrZUO7a99b5FCGqZ7K/bM7p9rw=; b=JvDM0WD4GRfg0idRyFXsRO45/JYLVu9XB3JjFk6PUoh5cBtZkDAZ7UEsabKl9ccHcHU6xigiZhn5iRpVwRJNUcfwEKtrQInCi1oQpS0WErjyb8auWo195sPnSB+v23rkc5zl6IOr038YwhMd7w9WYSow7b3E9hkUVFBCJtfgHs3iYfSmcr8kYefvwvUWTvUP/eZm9kd0g4ynsjynhDawLRoXS2iRnt2WMK/7Hkz8esiOgDyqESC9T0DlFVJEboi51R77hcXX0fep5/sRqYvtv0Le5Z9zqagoKKX1JtUtz9Wsp6Q/f8/M18v+/RN34v3KxN/vL6OUvmn2fjzUjnxqdA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nHdrrPfmz14VlGRksRrZUO7a99b5FCGqZ7K/bM7p9rw=; b=XT85UjPdsw4Epl9AXj/ExraI2Fb7k1cDLqjYWrn2TTznJ01/xbrk8vhtIktfedOpKF2LKB5GzQqqoeSg5erZI30OBP6P4RuEVpxmUo8I9JaE79rl7PEgVzpi95XaPKKQKLL19TiM150Ns4J0SEiJ4y7+CMQ+SksDqbu56VPxTFUx38nHUQedffAtd0B9N+LCm70r4414hIlviYZAo0TtvufwhN1aqaSYjjF56AJxe98UzDx7/1YEdRPjaAxopwtqTSEiv9iFgjAaRGdKwJbRhBKtg14f80UnK1KpbLlevyusbj0z3lPJjedXf5/CatqiapwMvbqpLAwj4PR/NDqpqw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CY8PR12MB8300.namprd12.prod.outlook.com (2603:10b6:930:7d::16) by DM6PR12MB4385.namprd12.prod.outlook.com (2603:10b6:5:2a6::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.21; Fri, 24 Apr 2026 19:50:07 +0000 Received: from CY8PR12MB8300.namprd12.prod.outlook.com ([fe80::ce75:8187:3ac3:c5de]) by CY8PR12MB8300.namprd12.prod.outlook.com ([fe80::ce75:8187:3ac3:c5de%3]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 19:50:06 +0000 Date: Fri, 24 Apr 2026 15:50:03 -0400 From: Yury Norov To: "Christophe Leroy (CS GROUP)" Cc: Andrew Morton , Thomas Gleixner , "Peter Zijlstra (Intel)" , Mathieu Desnoyers , Alice Ryhl , Viktor Malik , Randy Dunlap , David Laight , linux-kernel@vger.kernel.org, Yury Norov Subject: Re: [PATCH 2/2] uaccess: minimize INLINE_COPY_USER-related ifdefery Message-ID: References: <20260325163313.749336-1-ynorov@nvidia.com> <20260325163313.749336-3-ynorov@nvidia.com> <1b04dc17-baa7-47cd-b10a-01ee5a2c79b3@kernel.org> Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1b04dc17-baa7-47cd-b10a-01ee5a2c79b3@kernel.org> X-ClientProxiedBy: SJ0PR03CA0351.namprd03.prod.outlook.com (2603:10b6:a03:39c::26) To CY8PR12MB8300.namprd12.prod.outlook.com (2603:10b6:930:7d::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY8PR12MB8300:EE_|DM6PR12MB4385:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a4569e4-64d6-444b-69af-08dea23aaf45 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|10070799003|1800799024|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: ajd9zuin73v60WnBaA6CVovOvE3m9TGJfWqODebmB8NsfB8+S7fBbWDduNZgdcEnpLfuOBccF62zibUELdIS2F5k914hxpFrwUwH+IZgw2t6ZHW7ClxljpEs8H9knuzoG+RAz/QQX/pqGrFjEmVtu+JJmx3G6zER9xrjKVtzWJ/IsZ1bnp9MY77FtD16lswTSm/PNuer1bCnN5tJh+0Do5cbsHvK4KE4UtsNYhpKhPv6W8e37OEvWeJsakqOLtiM6uKn+i+vPchAO4pr+zuUOHcnWHjPFHVhigifnSn7L9lx8j3Bg7AcIGkEi/8jz4TuFMgmtluUNsABYbvZeN2J5dD0//N5vKHiRDA48vtsoAoq3wX/AaTqvvJBv4NeudXXmAiI4E/Bc8SUYrIdClRZKHqAnin0A90SedYRwVH+pkH+zi4ur8t2Gsw6nSif6+FN7itVVPzpBBoKEHCJAP1NZOLIm61xmczaEoG9zTZJkGhjeP63NqMX2niVUQ+fW0hkmAeoXLCPUo5ipwUDzemG3uFEdRsNBajNvJc20j3C+L64zgQ8zgPHRhhKoQrAXvWqpTDUcqWJ2f3n7Z36zmvmroxzEP1ws1ubp3XgfXR9SgHoZRFMHT1v4ZqIVR9brS6CNi209Nyo0Dvq9ce5PGiAIp1//mVupDK66k3RNr1sv/nnnKmG/19YDSx2ON+r7H3zuWxdyC5KicXlRUR+YWehVxnOHAGAKe2bwcP2MMSQaZg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY8PR12MB8300.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(10070799003)(1800799024)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?iso-8859-1?Q?sdoeHz8P3ZIMvigywrqvmFNKTW0Q5FrUqoKC1PKMQ1SmyTG790I/SZE7Bu?= =?iso-8859-1?Q?rQh/xn5FHzlGlPYAneXTY8yb+ohqyIKi92gsaG38U4tD/fwz9lpzvMJsFN?= =?iso-8859-1?Q?C8ZcV6TMU9xZTd8X/MaAD/LOP7a7RfN1yovu/Xdo6K2h2Ttf28qSPgOn+/?= =?iso-8859-1?Q?krEIWwv2PL67CZ/8y24/F05AWh17+RV0k1T7AFnIjgJyxFd/p+ckzPIDRy?= =?iso-8859-1?Q?zUYCbi4ay3JUU+dFuAbBW7BX/2+aJGwR+4oZMoZrSiOAsjtJeUDzkyTsNo?= =?iso-8859-1?Q?XKDMMqyPsOvUOS+t83VpnMzDXRdxeBiWGSiPOc7GJVej58q+6mouPSgKFd?= =?iso-8859-1?Q?aBR/DOMFyryX7l14n9WfviPu08eJIiQSZvQ5QvpXXYqIDHCGB7N38//pF7?= =?iso-8859-1?Q?umlcg7GOCn/BfPv8FTcWPp+6obC3xNIymstXgyjbzfk1WgMBYC9Kld8/25?= =?iso-8859-1?Q?T2kbpUmfxGBd7ReuVk/DCFwQAPKE2VMj5MlgmhsE6GTcuEU0eh86LqAkeT?= =?iso-8859-1?Q?wuSnyx39r3bJ7jhg9liPQt3mL7p7byWBivnt53j+fQAqFHC9ARHmCL3th4?= =?iso-8859-1?Q?OmqigseLJbZWGFzq48qhLrrQN0ycZvZbX9bVAWVj77y/DHg6raOk0+ZgRG?= =?iso-8859-1?Q?zzM1hiC+Vk3Nnbk1f1Aden55VYhiuJ9yn0+ybjbYNgtazCa2eaxdCOZe8w?= =?iso-8859-1?Q?bdatSl+sBbWb36C9MFAF1kzj5d97LU0vP4sFRFxwmRe+vsAPiZtEvkFmjJ?= =?iso-8859-1?Q?PcPRX7hwIPdv++ca0o3LcWh2u5jwnnA8N26G119iE9DC0dRQQnfYWOdk36?= =?iso-8859-1?Q?DKKeNyhCKZbSIGkvHrsCloLuGCuBAolzxvXMnKqh3ePAAmIOQup96bwVDh?= =?iso-8859-1?Q?cLOrLF9t2gJOk5PCzwg8MZ25iP81yrodbmujC7kZcW9L03/pOaKJMmLrXA?= =?iso-8859-1?Q?ckLOFeP1TAlQTI1EPNtXH8zMs79jbxCW3tDeO4mow+b4f3h7HvSr/r76Hx?= =?iso-8859-1?Q?Ci5cNkGXoIC7zqoG7HDPOET71f00VVhaFys5bER0GDzVgOEMnKKvNqKeT+?= =?iso-8859-1?Q?/5EgE0jcoLg5HFSHcPaAIZvjNJoxUgbmdiBuEYpA93kjOywmfzGYfU+Lz2?= =?iso-8859-1?Q?xSeawXQ+l+AQaA2gpAWxEjL62kJUv2s9BC7q9HbLDSxM/eG1mt7qIfA01/?= =?iso-8859-1?Q?g9MuMcZl78tfQoDG8z63zMmVn2aJgwu7c7ZDpECWJqr2pWiD3i0VWM0ppR?= =?iso-8859-1?Q?/Zoe34ba3opbd0fAiC0xwy3NHIhVCM8gSgleqXMF2mJubICX1dirjREwNb?= =?iso-8859-1?Q?+kqorj28NOrZQerebBdkS8zuajvBVz/ci6JUo7ulAC1f2SVsFodMf27ROw?= =?iso-8859-1?Q?nCW6OkzeCydVJ6adJDCqT4vNfU28jsIpJ4h2HoU3pGAixDwBrljBvkMU7s?= =?iso-8859-1?Q?Ak3c+3mZwHAGbDyl4QST7zIu+YSEtLJJGdRViCGU+23HlpU24j7Clrrdyi?= =?iso-8859-1?Q?YVq1ki3F3xSQu0O8JsoTUc90yJaP3/NrmDN/+VHB8sTWQCZ7BgQFcJtU4W?= =?iso-8859-1?Q?ynN9BfntOnRFLkl9TOqoNMiF4HgIijwTQBabqTpFcq1n6M/ipvrn8WZaLH?= =?iso-8859-1?Q?9oejXvxn/ficVJb2Lyxo955Nidjw+EKiCALQHiG1AMH7bsJrovoDQc+bSO?= =?iso-8859-1?Q?msczPcbp/lcaQx5yNoYsRpXED7Ne5lpO62QrSDS6ObMhLx5DK2oB3pI0nV?= =?iso-8859-1?Q?+/OXxXrqiz0jlRXfbhwe9Zn6OtMLIEOzpG+xV1ArF9He2HHfmJm9t3/1bT?= =?iso-8859-1?Q?hqpjRSpZ48zsNl68yPSa64IQKcPQafPF1Q+yQ/xHm7DKHfywSWTY?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a4569e4-64d6-444b-69af-08dea23aaf45 X-MS-Exchange-CrossTenant-AuthSource: CY8PR12MB8300.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 19:50:06.7984 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FLhBivwQ8iLYXBuvT5NwCXfdqK7WDhoqr4KoDYoOXPQlzSI75QsgiNoFtlMQ3GEKdtWbOATP1ZJAgSyEJ4IVsQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4385 On Thu, Mar 26, 2026 at 03:15:09PM +0100, Christophe Leroy (CS GROUP) wrote: > > > Le 25/03/2026 à 17:33, Yury Norov a écrit : > > Now that we've got the same knob selecting inline vs outline copy_to_user() > > and copy_from_user(), we can simplify the corresponding logic in the > > uaccess.h. > > I think we should get rid of ifdefery completly, see below. And with comment > to previous patch, > > __is_defined(INLINE_COPY_TO_USER) > > becomes > > !IS_ENABLED(CONFIG_ARCH_WANT_OUTLINE_USER_COPY) It's out of the scope of the series. Feel free to submit a follow-up. > diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h > index 327f967a24b8..02a05dd61a77 100644 > --- a/include/linux/uaccess.h > +++ b/include/linux/uaccess.h > @@ -190,10 +190,9 @@ _inline_copy_from_user(void *to, const void __user > *from, unsigned long n) > memset(to + (n - res), 0, res); > return res; > } > -#ifndef INLINE_COPY_FROM_USER > + > extern __must_check unsigned long > _copy_from_user(void *, const void __user *, unsigned long); > -#endif > > static inline __must_check unsigned long > _inline_copy_to_user(void __user *to, const void *from, unsigned long n) > @@ -207,21 +206,19 @@ _inline_copy_to_user(void __user *to, const void > *from, unsigned long n) > } > return n; > } > -#ifndef INLINE_COPY_TO_USER > + > extern __must_check unsigned long > _copy_to_user(void __user *, const void *, unsigned long); > -#endif This declares a function that may have no implementation. It's wrong. > static __always_inline unsigned long __must_check > copy_from_user_common(void *to, const void __user *from, unsigned long n, > bool partial) > { > if (!check_copy_size(to, n, false)) > return n; > -#ifdef INLINE_COPY_FROM_USER > - return _inline_copy_from_user(to, from, n); > -#else > - return _copy_from_user(to, from, n); > -#endif > + if (__is_defined(INLINE_COPY_FROM_USER)) > + return _inline_copy_from_user(to, from, n); > + else > + return _copy_from_user(to, from, n); To me, this is just another form of ifdefery. I prefer to minimize the number of IS_DEFINED() blocks, just as #ifdef. But it's maybe just me. Let's merge INLINE_COPY_USER series, and then see how you follow up would look? > } > > static __always_inline unsigned long __must_check > @@ -242,11 +239,10 @@ copy_to_user_common(void __user *to, const void *from, > unsigned long n, bool par > if (!check_copy_size(from, n, true)) > return n; > > -#ifdef INLINE_COPY_TO_USER > - return _inline_copy_to_user(to, from, n); > -#else > - return _copy_to_user(to, from, n); > -#endif > + if (__is_defined(INLINE_COPY_TO_USER)) > + return _inline_copy_to_user(to, from, n); > + else > + return _copy_to_user(to, from, n); > } > > static __always_inline unsigned long __must_check > > > Christophe