{"id":2229065,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2229065/?format=json","web_url":"http://patchwork.ozlabs.org/project/sparclinux/patch/c73b90236f2810edd47c84edd2a8d8e8e0c816da.1777306795.git.chleroy@kernel.org/","project":{"id":10,"url":"http://patchwork.ozlabs.org/api/1.1/projects/10/?format=json","name":"Linux SPARC Development ","link_name":"sparclinux","list_id":"sparclinux.vger.kernel.org","list_email":"sparclinux@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<c73b90236f2810edd47c84edd2a8d8e8e0c816da.1777306795.git.chleroy@kernel.org>","date":"2026-04-27T17:13:45","name":"[RFC,v1,4/9] uaccess: Introduce copy_{to/from}_user_partial()","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"63ebd577e3047f5527cbdb6e45e9aeef7a3420cd","submitter":{"id":92089,"url":"http://patchwork.ozlabs.org/api/1.1/people/92089/?format=json","name":"Christophe Leroy (CS GROUP)","email":"chleroy@kernel.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/sparclinux/patch/c73b90236f2810edd47c84edd2a8d8e8e0c816da.1777306795.git.chleroy@kernel.org/mbox/","series":[{"id":501694,"url":"http://patchwork.ozlabs.org/api/1.1/series/501694/?format=json","web_url":"http://patchwork.ozlabs.org/project/sparclinux/list/?series=501694","date":"2026-04-27T17:13:41","name":"uaccess: Convert small fixed size copy_{to/from}_user() to scoped user access","version":1,"mbox":"http://patchwork.ozlabs.org/series/501694/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2229065/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2229065/checks/","tags":{},"headers":{"Return-Path":"\n <SRS0=dRf4=C2=vger.kernel.org=sparclinux+bounces-6729-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","sparclinux@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=JDwlcHyn;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=drf4=c2=vger.kernel.org=sparclinux+bounces-6729-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c0a:e001:db::12fc:5321\"\n arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=JDwlcHyn;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=sparclinux+bounces-6729-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"JDwlcHyn\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g49Qf5wd6z1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 28 Apr 2026 03:23:54 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4g49Qf5RKXz4wDK\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 28 Apr 2026 03:23:54 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4g49Qf5Lddz4wL5; Tue, 28 Apr 2026 03:23:54 +1000 (AEST)","from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4g49Qb1yjgz4wDK\n\tfor <patchwork-incoming@ozlabs.org>; Tue, 28 Apr 2026 03:23:51 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 5D67E306B3B5\n\tfor <patchwork-incoming@ozlabs.org>; Mon, 27 Apr 2026 17:18:23 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id BC1FB3E3C73;\n\tMon, 27 Apr 2026 17:18:17 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 89CBB351C09;\n\tMon, 27 Apr 2026 17:18:17 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 08C06C2BCF4;\n\tMon, 27 Apr 2026 17:17:56 +0000 (UTC)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1777310634; cv=pass;\n\tb=k4xbNA3A1HkN0YBWj7mwt4+UGd1Me1chkNniUb0eBlyx+hsjLGXstDWTt5L/6jmwAAvdQJYXrLspdh8/LLVYVGzycv+km7ETWFOaisIZZ0WUPlsUuszk4n4ldsxTEFvhJcfeMu0qpv1KGUmKWSFhH6WDw6Pmx+kUkQMayKV8fFmqiTULfw2Pd5S+pwhG4EwXPGyGyiZz+AFUbYq3M5C7nemgx5sgg10cBL/FkB8ft5YfsU4+C2m8VU9I5jkfk1x6HBkVzqyYl7FN8BW10aB+Q/2VPOytHt20Jvljv1JySnPRNexZiix1cnw/7jUdndyUW2JE+ZuB0qXDQcwdZrhcMg==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777310297; cv=none;\n b=gldF29zp2qPKxdrrBKEIBHHqAPP9c/yZtB0u3AsH68B6WEDPabOm9fMnYjMNSmHNokE0Gvly7vIVB3B+aEjFh7SGrbqxi2cZVJoRy74EheAyZsPl8GzreubJRNUb8LKiopuQ92QDKbWgjFVW2+h9pwAni4+9DMXoCbVxfCfLZ+U="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1777310634; c=relaxed/relaxed;\n\tbh=sOGbn9OoG8rBGqzI2kLVy+02fyWRJuxPwbq3dZ0vyfI=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=rSr5YFJVRtu0POKFEEiHyWFflC3WuXgQQmZyQqR3oZfL+9qyYhLxx4z5jka3Arw+2zVfV9/zXO67YOtGFX4dmuqFy1sV0y84SxDzr14nQkgYF6DLY7cvPPp4Lq/maKuJ10elHWf2dpe26Cgk4RSMRDSdVYo5vyZhYmKxXgUoqgtD+weveEjQzWzGzIpknR0PLeb4wCoBxn9BGai+ElcTUPI68WsrMhr8cHb8UYVKN5klKSDBLJ8B/IOBXydIHkcSVQur1p8yhRukHpQMIFmpft3c5Fx8WaQ6Y6nsP3+sljLD52B8ApG5FlyfmR/SD4HKv5ZCNXUmU31Wl6qtXnbeaw==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777310297; c=relaxed/simple;\n\tbh=G/2eQ9TI5TAejE5IgsfdvVcfACCawPpecEdM1VXM32k=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=ZnUrrYbDghgwp8xw6Lc7hyi3X7JaQDTM/y+utxOehJwhFmyCu3SQoDO/kBe9BS2ULW7t/pGiemcSPUHWgJzFaFjkZPEXkeBLDda7iuCOxWjKZNyUwsFfGV5JagYuENN9A4pEaYA91xWM1kDNZkenSXW6AvSOiDtJ/XnhthJ+dYg="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org;\n dkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=JDwlcHyn; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=sparclinux+bounces-6729-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=JDwlcHyn; arc=none smtp.client-ip=10.30.226.201"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1777310297;\n\tbh=G/2eQ9TI5TAejE5IgsfdvVcfACCawPpecEdM1VXM32k=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=JDwlcHynPBKJgZEQOCWtilxNz5OJTbEC9ImCjJuQT3RnOoZjD4+90hMORF2q1smV0\n\t ZZwStmTz2ZWfCFTglmd/E7DTmKQiqUkyq6DoW4QkOcmP8LtfpYhN9V4ZMaLV1xjKUX\n\t qf/gxqJdT3gAPMXuYRhHcRDH0KM3YGUgvPXpdKncm5DePPHjb0VOG6buq4s8MreRM+\n\t EZo8pRxSQAzQ5kujjD1AkNCv3dgeUm7ZrfC1oOr8cnbPHFYMiYdejiO8B5iigWhrca\n\t 1OgKQbcauQ7QAB8qeF6Zf8CM71cpuIXWBUm7GSS+m87r+rFbtJTWOdD0Mn8qIs0Vfn\n\t 3JDYXNLvVgu3g==","From":"\"Christophe Leroy (CS GROUP)\" <chleroy@kernel.org>","To":"Yury Norov <ynorov@nvidia.com>,\n\tAndrew Morton <akpm@linux-foundation.org>,\n\tLinus Torvalds <torvalds@linux-foundation.org>,\n\tDavid Laight <david.laight.linux@gmail.com>,\n\tThomas Gleixner <tglx@linutronix.de>","Cc":"\"Christophe Leroy (CS GROUP)\" <chleroy@kernel.org>,\n\tlinux-alpha@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-snps-arc@lists.infradead.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-mips@vger.kernel.org,\n\tlinuxppc-dev@lists.ozlabs.org,\n\tkvm@vger.kernel.org,\n\tlinux-riscv@lists.infradead.org,\n\tlinux-s390@vger.kernel.org,\n\tsparclinux@vger.kernel.org,\n\tlinux-um@lists.infradead.org,\n\tdmaengine@vger.kernel.org,\n\tlinux-efi@vger.kernel.org,\n\tlinux-fsi@lists.ozlabs.org,\n\tamd-gfx@lists.freedesktop.org,\n\tdri-devel@lists.freedesktop.org,\n\tintel-gfx@lists.freedesktop.org,\n\tlinux-wpan@vger.kernel.org,\n\tnetdev@vger.kernel.org,\n\tlinux-wireless@vger.kernel.org,\n\tlinux-spi@vger.kernel.org,\n\tlinux-media@vger.kernel.org,\n\tlinux-staging@lists.linux.dev,\n\tlinux-serial@vger.kernel.org,\n\tlinux-usb@vger.kernel.org,\n\txen-devel@lists.xenproject.org,\n\tlinux-fsdevel@vger.kernel.org,\n\tocfs2-devel@lists.linux.dev,\n\tbpf@vger.kernel.org,\n\tkasan-dev@googlegroups.com,\n\tlinux-mm@kvack.org,\n\tlinux-x25@vger.kernel.org,\n\trust-for-linux@vger.kernel.org,\n\tlinux-sound@vger.kernel.org,\n\tsound-open-firmware@alsa-project.org,\n\tlinux-csky@vger.kernel.org,\n\tlinux-hexagon@vger.kernel.org,\n\tloongarch@lists.linux.dev,\n\tlinux-m68k@lists.linux-m68k.org,\n\tlinux-openrisc@vger.kernel.org,\n\tlinux-parisc@vger.kernel.org,\n\tlinux-sh@vger.kernel.org,\n\tlinux-arch@vger.kernel.org","Subject":"[RFC PATCH v1 4/9] uaccess: Introduce copy_{to/from}_user_partial()","Date":"Mon, 27 Apr 2026 19:13:45 +0200","Message-ID":"\n <c73b90236f2810edd47c84edd2a8d8e8e0c816da.1777306795.git.chleroy@kernel.org>","X-Mailer":"git-send-email 2.49.0","In-Reply-To":"<cover.1777306795.git.chleroy@kernel.org>","References":"<cover.1777306795.git.chleroy@kernel.org>","Precedence":"bulk","X-Mailing-List":"sparclinux@vger.kernel.org","List-Id":"<sparclinux.vger.kernel.org>","List-Subscribe":"<mailto:sparclinux+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:sparclinux+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-Developer-Signature":"v=1; a=openpgp-sha256; l=1585; i=chleroy@kernel.org;\n h=from:subject:message-id; bh=G/2eQ9TI5TAejE5IgsfdvVcfACCawPpecEdM1VXM32k=;\n b=owGbwMvMwCV2d0KB2p7V54MZT6slMWS+nxmjMKmwhcOl/KmCyQK3t3e2vTXauaOc++38fue5J\n 1/fnLd3d0cpC4MYF4OsmCLL8f/cu2Z0fUnNn7pLH2YOKxPIEAYuTgGYyD5HRoZnIqUtqi/uzJzx\n /elrrqTduXsuSM05kFXcMu1CQyFnzPFOhv/RJewtZeu89EsObX+ieXizf2Xo8RNCJwMOumbxCC5\n Mr+EBAA==","X-Developer-Key":"i=chleroy@kernel.org; a=openpgp;\n fpr=10FFE6F8B390DE17ACC2632368A92FEB01B8DD78","Content-Transfer-Encoding":"8bit","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tMAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"},"content":"Today there are approximately 3000 calls for copy_to_user() and\n3000 calls to copy_from_user().\n\nThe majority of callers of copy_{to/from}_user() don't care about the\nreturn value, they only check whether it is 0 or not, and when it is\nnot 0 they handle it as a -EACCES.\n\nIn order to allow better optimisation of copy_{to/from}_user() when\nthe size of the copy is known at build time, create new fonctions\nnamed copy_{to/from}_user_partial() to be used by the few callers\nthat are interested in partial copies and need to now how many\nbytes remain at the end of the copy.\n\nFor the time being it is just the same as copy_{to/from}_user().\n\nSigned-off-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>\n---\n include/linux/uaccess.h | 4 ++++\n 1 file changed, 4 insertions(+)","diff":"diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h\nindex bd1201c81d94..2d37173782b3 100644\n--- a/include/linux/uaccess.h\n+++ b/include/linux/uaccess.h\n@@ -221,6 +221,8 @@ copy_from_user(void *to, const void __user *from, unsigned long n)\n \t\treturn _inline_copy_from_user(to, from, n);\n }\n \n+#define copy_from_user_partial copy_from_user\n+\n static __always_inline unsigned long __must_check\n copy_to_user(void __user *to, const void *from, unsigned long n)\n {\n@@ -233,6 +235,8 @@ copy_to_user(void __user *to, const void *from, unsigned long n)\n \t\treturn _inline_copy_to_user(to, from, n);\n }\n \n+#define copy_to_user_partial copy_to_user\n+\n #ifndef copy_mc_to_kernel\n /*\n  * Without arch opt-in this generic copy_mc_to_kernel() will not handle\n","prefixes":["RFC","v1","4/9"]}