Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2221682/?format=api
{ "id": 2221682, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2221682/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260410055040.39233-3-kwilczynski@kernel.org/", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/1.1/projects/28/?format=api", "name": "Linux PCI development", "link_name": "linux-pci", "list_id": "linux-pci.vger.kernel.org", "list_email": "linux-pci@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20260410055040.39233-3-kwilczynski@kernel.org>", "date": "2026-04-10T05:50:22", "name": "[02/20] PCI/sysfs: Only allow supported resource types in I/O and MMIO helpers", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "ee3b16561764be1e2c6b37f2cc7fe92b8a9fa9fd", "submitter": { "id": 86709, "url": "http://patchwork.ozlabs.org/api/1.1/people/86709/?format=api", "name": "Krzysztof Wilczyński", "email": "kwilczynski@kernel.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260410055040.39233-3-kwilczynski@kernel.org/mbox/", "series": [ { "id": 499398, "url": "http://patchwork.ozlabs.org/api/1.1/series/499398/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=499398", "date": "2026-04-10T05:50:21", "name": "PCI: Convert all dynamic sysfs attributes to static", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/499398/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2221682/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2221682/checks/", "tags": {}, "headers": { "Return-Path": "\n <linux-pci+bounces-52264-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-pci@vger.kernel.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=Mvd/ZBK4;\n\tdkim-atps=neutral", "legolas.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=linux-pci+bounces-52264-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"Mvd/ZBK4\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201" ], "Received": [ "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 legolas.ozlabs.org (Postfix) with ESMTPS id 4fsQtP4Fh0z1yGb\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 15:52:13 +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 BC6A2302496F\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 05:50:53 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 3BC1B322B9F;\n\tFri, 10 Apr 2026 05:50:52 +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 18B381A304A;\n\tFri, 10 Apr 2026 05:50:52 +0000 (UTC)", "by smtp.kernel.org (Postfix) with ESMTPSA id C6BADC19421;\n\tFri, 10 Apr 2026 05:50:48 +0000 (UTC)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775800252; cv=none;\n b=mLVNf+doGa+8sR6nCwGbBlgJhlYcBbNhLADCRKNiDB9PnNQGiv04RCRw1MbudNl/eG/xwKT2mD+kD854UqKujkBbCqzpnUgT8ck9b8N/+YOz+mOgC3UNn01HL4dvViqqN2dyd3fddWGGcFiFrCYSfK8Qhclr7/1fRKIF6ECUFe4=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775800252; c=relaxed/simple;\n\tbh=O8kQ8QkL9LHeQ/3N8ubS2U25zz9aBbM59rexDGwqeT4=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=CBkIOn54qkgBgzMhq+dX1aw9p/0In0uYc4fP9mmTfTEyZOp1R5qiGs+R64vLS/jNTGDINS0IVhMmDoFZFc+fk3+aQU3ef8JUQ1i5584EV0rV21VnM8Rc4KGYH6JcL/JBSnutF2nTPo4WiFMbn1ai1kSOprCXkBEms0e/ocXkTfI=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=Mvd/ZBK4; 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=1775800252;\n\tbh=O8kQ8QkL9LHeQ/3N8ubS2U25zz9aBbM59rexDGwqeT4=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=Mvd/ZBK4JZ3ugDIqD8qBy9RypOd44POFR5UdO2aVnaeCsYRDmuj7xaRUOqjsWJBTO\n\t GKZCmPgluWSMZJSXSHZ4ZG1A8/CV8NehkGas7ShsLMUzybBt07DN5tw5TnBIXHZgFK\n\t h8AZJqyveq2bqqPIp+fLbR9AeQp7vPrrPDGBWpq1SNDlC+IY42RcOaZSzMkw2RCcTq\n\t jYqAT8AyDaC6GOXMoBFzqgTvieBBR4e2C1xa/RWHZr0uIB24wUEeNkvj0NBy92uFCY\n\t JjiSIiKkJMIrqbd3jG8jW+xkOUfcSoEXbi+qCssvyWEZSXl94bNtD3cSubUswsl8jz\n\t aQyqTwfkdjkkQ==", "From": "=?utf-8?q?Krzysztof_Wilczy=C5=84ski?= <kwilczynski@kernel.org>", "To": "Bjorn Helgaas <bhelgaas@google.com>", "Cc": "Bjorn Helgaas <helgaas@kernel.org>,\n Manivannan Sadhasivam <mani@kernel.org>,\n Lorenzo Pieralisi <lpieralisi@kernel.org>,\n Magnus Lindholm <linmag7@gmail.com>, Matt Turner <mattst88@gmail.com>,\n Richard Henderson <richard.henderson@linaro.org>,\n Christophe Leroy <chleroy@kernel.org>,\n Madhavan Srinivasan <maddy@linux.ibm.com>,\n Michael Ellerman <mpe@ellerman.id.au>, Nicholas Piggin <npiggin@gmail.com>,\n Dexuan Cui <decui@microsoft.com>,\n =?utf-8?q?Krzysztof_Ha=C5=82asa?= <khalasa@piap.pl>,\n Lukas Wunner <lukas@wunner.de>, \"Oliver O'Halloran\" <oohall@gmail.com>,\n Saurabh Singh Sengar <ssengar@microsoft.com>,\n Shuan He <heshuan@bytedance.com>, Srivatsa Bhat <srivatsabhat@microsoft.com>,\n\t=?utf-8?q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>,\n linux-pci@vger.kernel.org, linux-alpha@vger.kernel.org,\n linuxppc-dev@lists.ozlabs.org", "Subject": "[PATCH 02/20] PCI/sysfs: Only allow supported resource types in I/O\n and MMIO helpers", "Date": "Fri, 10 Apr 2026 05:50:22 +0000", "Message-ID": "<20260410055040.39233-3-kwilczynski@kernel.org>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<20260410055040.39233-1-kwilczynski@kernel.org>", "References": "<20260410055040.39233-1-kwilczynski@kernel.org>", "Precedence": "bulk", "X-Mailing-List": "linux-pci@vger.kernel.org", "List-Id": "<linux-pci.vger.kernel.org>", "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit" }, "content": "Currently, when the sysfs attributes for PCI resources are added\ndynamically, the resource access callbacks are only set when the\nunderlying BAR type matches, using .read and .write for IORESOURCE_IO,\nand .mmap for IORESOURCE_MEM or IORESOURCE_IO with arch_can_pci_mmap_io()\nsupport. As such, when the callback is not set, the operation inherently\nfails.\n\nAfter the conversion to static attributes, visibility callbacks will\ncontrol which resource files appear for each BAR, but the callbacks\nthemselves will always be set.\n\nThus, add a type check to pci_resource_io() and pci_mmap_resource()\nto return -EIO for an unsupported resource type.\n\nWhile at it, add parentheses around the bitwise flag test in\npci_mmap_resource() to make the precedence explicit, and to\nmatch the preferred style.\n\nSigned-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>\n---\n drivers/pci/pci-sysfs.c | 11 +++++++++--\n 1 file changed, 9 insertions(+), 2 deletions(-)", "diff": "diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c\nindex ad3c17f86c7f..008e0dd0de36 100644\n--- a/drivers/pci/pci-sysfs.c\n+++ b/drivers/pci/pci-sysfs.c\n@@ -1115,13 +1115,17 @@ static int pci_mmap_resource(struct kobject *kobj, const struct bin_attribute *a\n \tif (ret)\n \t\treturn ret;\n \n-\tif (res->flags & IORESOURCE_MEM && iomem_is_exclusive(res->start))\n+\tif (!(res->flags & IORESOURCE_MEM) &&\n+\t !((res->flags & IORESOURCE_IO) && arch_can_pci_mmap_io()))\n+\t\treturn -EIO;\n+\n+\tif ((res->flags & IORESOURCE_MEM) && iomem_is_exclusive(res->start))\n \t\treturn -EINVAL;\n \n \tif (!pci_mmap_fits(pdev, bar, vma, PCI_MMAP_SYSFS))\n \t\treturn -EINVAL;\n \n-\tmmap_type = res->flags & IORESOURCE_MEM ? pci_mmap_mem : pci_mmap_io;\n+\tmmap_type = (res->flags & IORESOURCE_MEM) ? pci_mmap_mem : pci_mmap_io;\n \n \treturn pci_mmap_resource_range(pdev, bar, vma, mmap_type, write_combine);\n }\n@@ -1149,6 +1153,9 @@ static ssize_t pci_resource_io(struct file *filp, struct kobject *kobj,\n \tint bar = (unsigned long)attr->private;\n \tunsigned long port = off;\n \n+\tif (!(pci_resource_flags(pdev, bar) & IORESOURCE_IO))\n+\t\treturn -EIO;\n+\n \tport += pci_resource_start(pdev, bar);\n \n \tif (port > pci_resource_end(pdev, bar))\n", "prefixes": [ "02/20" ] }