Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2224256/?format=api
{ "id": 2224256, "url": "http://patchwork.ozlabs.org/api/1.2/patches/2224256/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260417074825.22967-1-pengpeng@iscas.ac.cn/", "project": { "id": 2, "url": "http://patchwork.ozlabs.org/api/1.2/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/", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/", "list_archive_url_format": "https://lore.kernel.org/linuxppc-dev/{}/", "commit_url_format": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}" }, "msgid": "<20260417074825.22967-1-pengpeng@iscas.ac.cn>", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/20260417074825.22967-1-pengpeng@iscas.ac.cn/", "date": "2026-04-17T07:48:25", "name": "powerpc/perf/hv-gpci: bound sysfs formatting with sysfs_emit_at()", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "877368a634d4188d2ab21c4ef665bf439f7cfb41", "submitter": { "id": 93000, "url": "http://patchwork.ozlabs.org/api/1.2/people/93000/?format=api", "name": "Pengpeng Hou", "email": "pengpeng@iscas.ac.cn" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260417074825.22967-1-pengpeng@iscas.ac.cn/mbox/", "series": [ { "id": 500258, "url": "http://patchwork.ozlabs.org/api/1.2/series/500258/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=500258", "date": "2026-04-17T07:48:25", "name": "powerpc/perf/hv-gpci: bound sysfs formatting with sysfs_emit_at()", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/500258/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2224256/comments/", "check": "success", "checks": "http://patchwork.ozlabs.org/api/patches/2224256/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linuxppc-dev+bounces-19822-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 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-19822-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)", "lists.ozlabs.org;\n arc=none smtp.remote-ip=159.226.251.25", "lists.ozlabs.org;\n dmarc=none (p=none dis=none) header.from=iscas.ac.cn", "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=iscas.ac.cn\n (client-ip=159.226.251.25; helo=cstnet.cn;\n envelope-from=pengpeng@iscas.ac.cn; 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 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxn7T5Xnnz1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 17:48:37 +1000 (AEST)", "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4fxn7S3QHFz2yhP;\n\tFri, 17 Apr 2026 17:48:36 +1000 (AEST)", "from cstnet.cn (smtp25.cstnet.cn [159.226.251.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 4fxn7R3kWFz2xpt\n\tfor <linuxppc-dev@lists.ozlabs.org>; Fri, 17 Apr 2026 17:48:35 +1000 (AEST)", "from localhost.localdomain (unknown [111.196.245.116])\n\tby APP-05 (Coremail) with SMTP id zQCowAC3RgrL5eFpAzHYDQ--.61365S2;\n\tFri, 17 Apr 2026 15:48:28 +0800 (CST)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1776412116;\n\tcv=none;\n b=e1n2zxUbMjwYug9PlzoSq8uvwmaub9DQ+3QYJC6+FfX4FBuMpn6MQIr0B597sjFFNgUMRL/945OI6ft627QbYomAt6yYRxTYDB4+IJhvoaKc5slXSL9EvbHHy6nJnHWwvuiT2ZEa1CjIo6jlFAvijVw1sa0Sd+7X88A8Gvbj8e4Qk5u7E8Arx0Im8E/0+C/ZL7RWRPvaXY2DpeGTPfrqHanK5JAPiTQBX4w0fvvDPhDSbQ7Yejo6RhdmojcfiJXurP4STzZPltMzWRbrRgmJhQjW+nEDET3B6I9lylwFt9bKzBScBFbaMnJjSOOTp1YULrP8Os9tHsG044zsSi/JBw==", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1776412116; c=relaxed/relaxed;\n\tbh=XDAThG0yRn/HWC1IcfrgXuB/3VOoHTEOJu87Gp3N/oM=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=BC/s3q/5CD6T/sd6FfxKn27J3V9YXr2PlN9NPgUhgZubZFAxWGWIkyS6/Z7gXCexznSzTCMLB2GglgQvN7iMFroYYkSKukgSUUr4xFucToz73cn+mx53yFrdPcE9+lelOxwxsg8H1DlSoV3Ign5RJyA/Ct9RX09VQ9lVSj5C6u1jrtnOnYhv23+mi39hv0MMkRnhegkZtYSSrUv0gOgtJQN3MElGzDTZ7KtasgyALBUjK//8Z/dVZZLjl1bIl2k4Ve9X6hSWkt0Bz31T9nUOKfJXbH3Yum4bNqGdlEA43v5i9O7E1S9G/GRKn5QcF27kroZpScLKfDd8sSikWMiCIg==", "ARC-Authentication-Results": "i=1; lists.ozlabs.org;\n dmarc=none (p=none dis=none) header.from=iscas.ac.cn;\n spf=pass (client-ip=159.226.251.25; helo=cstnet.cn;\n envelope-from=pengpeng@iscas.ac.cn;\n receiver=lists.ozlabs.org) smtp.mailfrom=iscas.ac.cn", "From": "Pengpeng Hou <pengpeng@iscas.ac.cn>", "To": "Madhavan Srinivasan <maddy@linux.ibm.com>,\n\tMichael Ellerman <mpe@ellerman.id.au>", "Cc": "Nicholas Piggin <npiggin@gmail.com>,\n\t\"Christophe Leroy (CS GROUP)\" <chleroy@kernel.org>,\n\tKees Cook <kees@kernel.org>,\n\tlinuxppc-dev@lists.ozlabs.org,\n\tlinux-kernel@vger.kernel.org,\n\tPengpeng Hou <pengpeng@iscas.ac.cn>,\n\tstable@vger.kernel.org", "Subject": "[PATCH] powerpc/perf/hv-gpci: bound sysfs formatting with\n sysfs_emit_at()", "Date": "Fri, 17 Apr 2026 15:48:25 +0800", "Message-ID": "<20260417074825.22967-1-pengpeng@iscas.ac.cn>", "X-Mailer": "git-send-email 2.50.1", "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", "Content-Transfer-Encoding": "8bit", "X-CM-TRANSID": "zQCowAC3RgrL5eFpAzHYDQ--.61365S2", "X-Coremail-Antispam": "1UD129KBjvJXoWxAr13Wr15ury7Zry7ur17Jrb_yoWrJw43p3\n\tWfKr4q9rs5Xw17CrWIkF1xZw15W397A347WrW2g393ArsxX3909FyUKFyY9ry8GFWrCa48\n\turZxKrs0krnrJFDanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2\n\t9KBjDU0xBIdaVrnRJUUUkE14x267AKxVW8JVW5JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0\n\trVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02\n\t1l84ACjcxK6xIIjxv20xvE14v26ryj6F1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U\n\tJVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc\n\tCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E\n\t2Ix0cI8IcVAFwI0_Jw0_WrylYx0Ex4A2jsIE14v26r4j6F4UMcvjeVCFs4IE7xkEbVWUJV\n\tW8JwACjcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lc7CjxVAaw2AFwI0_\n\tJw0_GFyl42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67\n\tAKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r1q6r43MIIY\n\trxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_JFI_Gr1lIxAIcVC0I7IYx2IY6xkF7I0E14\n\tv26F4j6r4UJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr0_\n\tCr1lIxAIcVC2z280aVCY1x0267AKxVW8Jr0_Cr1UYxBIdaVFxhVjvjDU0xZFpf9x0JUDOz\n\t3UUUUU=", "X-Originating-IP": "[111.196.245.116]", "X-CM-SenderInfo": "pshqw1xhqjqxpvfd2hldfou0/", "X-Spam-Status": "No, score=-0.0 required=3.0 tests=RCVD_IN_DNSWL_NONE,\n\tSPF_HELO_PASS,SPF_PASS autolearn=disabled version=4.0.1 OzLabs 8", "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org" }, "content": "systeminfo_gpci_request() and\naffinity_domain_via_partition_result_parse() hex-encode hypervisor data\ninto the single-page sysfs read buffer with sprintf(buf + *n, ...).\nBoth helpers only check PAGE_SIZE after the formatting loops have already\nadvanced past the end of the buffer.\n\nSwitch these appends to sysfs_emit_at() and stop once the sysfs buffer is\nfull.\n\nFixes: 71f1c39647d8 (\"powerpc/hv_gpci: Add sysfs file inside hv_gpci device to show processor bus topology information\")\nFixes: a15e0d6a6929 (\"powerpc/hv_gpci: Add sysfs file inside hv_gpci device to show affinity domain via partition information\")\nCc: stable@vger.kernel.org\n\nSigned-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>\n---\n arch/powerpc/perf/hv-gpci.c | 56 +++++++++++++++++++++++++++++++------\n 1 file changed, 47 insertions(+), 9 deletions(-)", "diff": "diff --git a/arch/powerpc/perf/hv-gpci.c b/arch/powerpc/perf/hv-gpci.c\nindex 5cac2cf3bd1e..325b80f01629 100644\n--- a/arch/powerpc/perf/hv-gpci.c\n+++ b/arch/powerpc/perf/hv-gpci.c\n@@ -11,6 +11,7 @@\n \n #include <linux/init.h>\n #include <linux/perf_event.h>\n+#include <linux/sysfs.h>\n #include <asm/firmware.h>\n #include <asm/hvcall.h>\n #include <asm/io.h>\n@@ -134,6 +135,7 @@ static unsigned long systeminfo_gpci_request(u32 req, u32 starting_index,\n \t\t\tsize_t *n, struct hv_gpci_request_buffer *arg)\n {\n \tunsigned long ret;\n+\tint len;\n \tsize_t i, j;\n \n \targ->params.counter_request = cpu_to_be32(req);\n@@ -176,9 +178,17 @@ static unsigned long systeminfo_gpci_request(u32 req, u32 starting_index,\n \tfor (i = 0; i < be16_to_cpu(arg->params.returned_values); i++) {\n \t\tj = i * be16_to_cpu(arg->params.cv_element_size);\n \n-\t\tfor (; j < (i + 1) * be16_to_cpu(arg->params.cv_element_size); j++)\n-\t\t\t*n += sprintf(buf + *n, \"%02x\", (u8)arg->bytes[j]);\n-\t\t*n += sprintf(buf + *n, \"\\n\");\n+\t\tfor (; j < (i + 1) * be16_to_cpu(arg->params.cv_element_size);\n+\t\t j++) {\n+\t\t\tlen = sysfs_emit_at(buf, *n, \"%02x\", (u8)arg->bytes[j]);\n+\t\t\tif (!len)\n+\t\t\t\treturn -EFBIG;\n+\t\t\t*n += len;\n+\t\t}\n+\t\tlen = sysfs_emit_at(buf, *n, \"\\n\");\n+\t\tif (!len)\n+\t\t\treturn -EFBIG;\n+\t\t*n += len;\n \t}\n \n \tif (*n >= PAGE_SIZE) {\n@@ -465,6 +475,7 @@ static void affinity_domain_via_partition_result_parse(int returned_values,\n \t\t\tint element_size, char *buf, size_t *last_element,\n \t\t\tsize_t *n, struct hv_gpci_request_buffer *arg)\n {\n+\tint len;\n \tsize_t i = 0, j = 0;\n \tsize_t k, l, m;\n \tuint16_t total_affinity_domain_ele, size_of_each_affinity_domain_ele;\n@@ -483,22 +494,49 @@ static void affinity_domain_via_partition_result_parse(int returned_values,\n \t */\n \twhile (i < returned_values) {\n \t\tk = j;\n-\t\tfor (; k < j + element_size; k++)\n-\t\t\t*n += sprintf(buf + *n, \"%02x\", (u8)arg->bytes[k]);\n-\t\t*n += sprintf(buf + *n, \"\\n\");\n+\t\tfor (; k < j + element_size; k++) {\n+\t\t\tlen = sysfs_emit_at(buf, *n, \"%02x\", (u8)arg->bytes[k]);\n+\t\t\tif (!len) {\n+\t\t\t\t*n = PAGE_SIZE;\n+\t\t\t\treturn;\n+\t\t\t}\n+\t\t\t*n += len;\n+\t\t}\n+\t\tlen = sysfs_emit_at(buf, *n, \"\\n\");\n+\t\tif (!len) {\n+\t\t\t*n = PAGE_SIZE;\n+\t\t\treturn;\n+\t\t}\n+\t\t*n += len;\n \n \t\ttotal_affinity_domain_ele = (u8)arg->bytes[k - 2] << 8 | (u8)arg->bytes[k - 3];\n \t\tsize_of_each_affinity_domain_ele = (u8)arg->bytes[k] << 8 | (u8)arg->bytes[k - 1];\n \n \t\tfor (l = 0; l < total_affinity_domain_ele; l++) {\n \t\t\tfor (m = 0; m < size_of_each_affinity_domain_ele; m++) {\n-\t\t\t\t*n += sprintf(buf + *n, \"%02x\", (u8)arg->bytes[k]);\n+\t\t\t\tlen = sysfs_emit_at(buf, *n, \"%02x\",\n+\t\t\t\t\t\t (u8)arg->bytes[k]);\n+\t\t\t\tif (!len) {\n+\t\t\t\t\t*n = PAGE_SIZE;\n+\t\t\t\t\treturn;\n+\t\t\t\t}\n+\t\t\t\t*n += len;\n \t\t\t\tk++;\n \t\t\t}\n-\t\t\t*n += sprintf(buf + *n, \"\\n\");\n+\t\t\tlen = sysfs_emit_at(buf, *n, \"\\n\");\n+\t\t\tif (!len) {\n+\t\t\t\t*n = PAGE_SIZE;\n+\t\t\t\treturn;\n+\t\t\t}\n+\t\t\t*n += len;\n \t\t}\n \n-\t\t*n += sprintf(buf + *n, \"\\n\");\n+\t\tlen = sysfs_emit_at(buf, *n, \"\\n\");\n+\t\tif (!len) {\n+\t\t\t*n = PAGE_SIZE;\n+\t\t\treturn;\n+\t\t}\n+\t\t*n += len;\n \t\ti++;\n \t\tj = k;\n \t}\n", "prefixes": [] }