get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.1/patches/2229041/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2229041,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2229041/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/c73b90236f2810edd47c84edd2a8d8e8e0c816da.1777306795.git.chleroy@kernel.org/",
    "project": {
        "id": 2,
        "url": "http://patchwork.ozlabs.org/api/1.1/projects/2/?format=api",
        "name": "Linux PPC development",
        "link_name": "linuxppc-dev",
        "list_id": "linuxppc-dev.lists.ozlabs.org",
        "list_email": "linuxppc-dev@lists.ozlabs.org",
        "web_url": "https://github.com/linuxppc/wiki/wiki",
        "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git",
        "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/"
    },
    "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=api",
        "name": "Christophe Leroy (CS GROUP)",
        "email": "chleroy@kernel.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/c73b90236f2810edd47c84edd2a8d8e8e0c816da.1777306795.git.chleroy@kernel.org/mbox/",
    "series": [
        {
            "id": 501691,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/501691/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=501691",
            "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/501691/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2229041/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2229041/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "\n <linuxppc-dev+bounces-20179-incoming=patchwork.ozlabs.org@lists.ozlabs.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linuxppc-dev@lists.ozlabs.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.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=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-20179-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)",
            "lists.ozlabs.org;\n arc=none smtp.remote-ip=\"2600:3c0a:e001:78e:0:1991:8:25\"",
            "lists.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org",
            "lists.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",
            "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org\n (client-ip=2600:3c0a:e001:78e:0:1991:8:25; helo=sea.source.kernel.org;\n envelope-from=chleroy@kernel.org; receiver=lists.ozlabs.org)"
        ],
        "Received": [
            "from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\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 4g49JD4ZkZz1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 28 Apr 2026 03:18:20 +1000 (AEST)",
            "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4g49JD3XHtz2yr9;\n\tTue, 28 Apr 2026 03:18:20 +1000 (AEST)",
            "from sea.source.kernel.org (sea.source.kernel.org\n [IPv6:2600:3c0a:e001:78e:0:1991:8:25])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4g49JC3bnCz2y7r;\n\tTue, 28 Apr 2026 03:18:19 +1000 (AEST)",
            "from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])\n\tby sea.source.kernel.org (Postfix) with ESMTP id 8B93C440C2;\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=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1777310300;\n\tcv=none;\n b=UW3IgkDSqVf1za9aVjeAaHIvvXV5QAqbQCpikKNAZI0dQouk2UgeftE4iL9o+TT7+vn3a8GSPGy6DO8d4pVoWBxhGlNlAiyh1pffrhrmRBviS3DoFfwO/fmNptfoamwuJHLBz7jgzyfX4QJDQtYHeIhkOX6KAbANbSjNG8BbB6553Z7j8AInVjfCix9+J4ct9B4+0Ksix/vgZGq6zoPQ0yknxi8XmEjrerSoULYUEi1iR1OAVKSzRLA+xhw8cIs/opSxd29g7wUck6CznFRaoM/mMLyl8WDvvBTxuagl2WGaBnhTssMaE4g+kigXDFm8K7+Z+2SxdYrRv8rR+IPNTA==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1777310300; 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=DqOan8ZeaoZd5M4lwoXxVZ2cG+jW/zvZj0uocEOZYhTrieAnBRuSlVUhHLprMDy33DlbegatnW5V5gxvxqNPXv9nR2ZE15pZErAxcYBw9QnjfHwI5V3pvqjP5JsECsG4+YPQxlkLR2GaDIa0IeuNK06aqJazuYXt5kz7w/oqwaGGw+IMLKtLgYlnRUg+FsZ1cvANiUMVBSR5d5A9nBq8918al+Fquqcx2kCBoQPvwQb/u6rJR1BDK2rLGG1sJIwfa9brbsnYLWhO+MOaHYMPFskJtLQyQGsj5TZXH+zcBFV+H46GNE5WhobHf+fPslk3W7fne8T8hMUkDXBf3S3TQw==",
        "ARC-Authentication-Results": "i=1; lists.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:78e:0:1991:8:25;\n helo=sea.source.kernel.org; envelope-from=chleroy@kernel.org;\n receiver=lists.ozlabs.org) smtp.mailfrom=kernel.org",
        "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>",
        "X-Mailing-List": "linuxppc-dev@lists.ozlabs.org",
        "List-Id": "<linuxppc-dev.lists.ozlabs.org>",
        "List-Help": "<mailto:linuxppc-dev+help@lists.ozlabs.org>",
        "List-Owner": "<mailto:linuxppc-dev+owner@lists.ozlabs.org>",
        "List-Post": "<mailto:linuxppc-dev@lists.ozlabs.org>",
        "List-Archive": "<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>",
        "List-Subscribe": "<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>",
        "List-Unsubscribe": "<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>",
        "Precedence": "list",
        "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=-0.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED,\n\tDKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS\n\tautolearn=disabled version=4.0.1",
        "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on lists.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"
    ]
}