Show a cover letter.

GET /api/1.2/covers/2221556/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2221556,
    "url": "http://patchwork.ozlabs.org/api/1.2/covers/2221556/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/cover/20260409185254.3869808-1-zhiw@nvidia.com/",
    "project": {
        "id": 28,
        "url": "http://patchwork.ozlabs.org/api/1.2/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,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260409185254.3869808-1-zhiw@nvidia.com>",
    "list_archive_url": null,
    "date": "2026-04-09T18:52:53",
    "name": "[0/1] Rust PCI capability infrastructure and SR-IOV support",
    "submitter": {
        "id": 88076,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/88076/?format=api",
        "name": "Zhi Wang",
        "email": "zhiw@nvidia.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/cover/20260409185254.3869808-1-zhiw@nvidia.com/mbox/",
    "series": [
        {
            "id": 499342,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/499342/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=499342",
            "date": "2026-04-09T18:52:54",
            "name": "Rust PCI capability infrastructure and SR-IOV support",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/499342/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2221556/comments/",
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-52228-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=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=altIpzUc;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-52228-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=\"altIpzUc\"",
            "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.46.71",
            "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com",
            "smtp.subspace.kernel.org;\n spf=fail smtp.mailfrom=nvidia.com"
        ],
        "Received": [
            "from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\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 4fs8GY6hKMz1yHG\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 04:53:41 +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 DF17C300D96F\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  9 Apr 2026 18:53:36 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id ED1D231A065;\n\tThu,  9 Apr 2026 18:53:35 +0000 (UTC)",
            "from CO1PR03CU002.outbound.protection.outlook.com\n (mail-westus2azon11010071.outbound.protection.outlook.com [52.101.46.71])\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 BAF102EBBA4;\n\tThu,  9 Apr 2026 18:53:34 +0000 (UTC)",
            "from PH8P220CA0058.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:2d9::32)\n by DS5PPFA33D606F8.namprd12.prod.outlook.com (2603:10b6:f:fc00::65b) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.20; Thu, 9 Apr\n 2026 18:53:22 +0000",
            "from CY4PEPF0000E9D1.namprd03.prod.outlook.com\n (2603:10b6:510:2d9:cafe::26) by PH8P220CA0058.outlook.office365.com\n (2603:10b6:510:2d9::32) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.40 via Frontend Transport; Thu,\n 9 Apr 2026 18:53:21 +0000",
            "from mail.nvidia.com (216.228.118.232) by\n CY4PEPF0000E9D1.mail.protection.outlook.com (10.167.241.136) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9769.17 via Frontend Transport; Thu, 9 Apr 2026 18:53:21 +0000",
            "from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com\n (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 9 Apr\n 2026 11:53:01 -0700",
            "from drhqmail202.nvidia.com (10.126.190.181) by\n drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.20; Thu, 9 Apr 2026 11:53:00 -0700",
            "from inno-dell.nvidia.com (10.127.8.12) by mail.nvidia.com\n (10.126.190.181) with Microsoft SMTP Server id 15.2.2562.20 via Frontend\n Transport; Thu, 9 Apr 2026 11:52:54 -0700"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775760815; cv=fail;\n b=r2COoqGPCeqYPCSanbP7Ggw9ABJNJTTv/YCuofd88rWjHGiKiKICRZE9yFyDRPq0M7ELj0nH5OHjSxWVt/cjLO9OPPZXyR/bNKwueqIyrRgOsOwJnYaxm/aF6UwCWqDwG6JVPORm17y15LiXZqHLaW63i674JDbw7QdLiRzk9NU=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Eqi2qggJUDXYwhZgRErahuBDfa/AaIqC0G1ISEcXCTU52c9qAgVUfn9vE0Y40Pg5CALz65QS0/c0NSF64CX96oAnH2jTniHLZM1wGQIWrEcd0BFOT6v/UmrLEXzZoM5TLCMwzBSRdmxU67qtLl2hvYFQVZd2UOj3FCgsqoe0stAfSpwl+tVxBXn4gTF7OfKNwQjBHlNeOzOHvmEpLf4hXfAdlKJJ9J77P/ZPwio0sH5q7o4c7+kPIS5JBsVaDBLeUUH7oxEgqI6g6hCpj8ID4cEi2KpZ9ppfuzsGX2St7oJG85Xf6V+dA5o03x+s9cajAhzB6qtEwMaKVHp5tqveGw=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775760815; c=relaxed/simple;\n\tbh=PJHdMOT5UL+8P+mcxAgmaTIvUaxktNQUD8wCt4gT9wY=;\n\th=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type;\n b=NPXepxxBkP4v5nXPg42bCXCLq7TZyrgcstJ1BrXyjXyL+nN3A9WjzvuJtDGUGPuiiqN0r/2lEtjoykLG3iNpoXc5Yt3L7wHpP3coRmjRLdQ19XayJHP/6/leqTXdLKYJxlxpTFJ9FtqHIb/kBrhVpjE8MPI6ubqn+aYhea+4nWc=",
            "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=XtTDlt+c5NHL8GAH0UT4l2GLtdfM2KLW6ZgPTUdyXgw=;\n b=WredB3WBCB/qbeIFD6YvyRRyto8SlJLPlyNoH4sZEl9NlX213QaANXzRmpDrJiTM/9QM1blVgS2vQe4c9cJe/5FKNhU6bAOZjSAoNGQJsXF0GW7ZzJs1FF8uc0W4ajA0NKRuFCMAzAllEahwgC+GNyKT1b8b2q1aVsNjFwMNC7zO7pUSlAdtUmS+0iuR6Rj9uVG8dRaVWv+kpWzNjz21gsQy2GcWyoMfTNOR7dawvKk40SQS8giXosxXZuSF0UkKHyqMv6V2Lf/0pcnNrZCTPefxIeVahJnhnXMnA2Fl07aK5Dt1tLX3NMmTGioOJe4eP0Fm7j3SEIjZHPezGX7GGA=="
        ],
        "ARC-Authentication-Results": [
            "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com;\n spf=fail smtp.mailfrom=nvidia.com;\n dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=altIpzUc; arc=fail smtp.client-ip=52.101.46.71",
            "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.118.232) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none (0)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=XtTDlt+c5NHL8GAH0UT4l2GLtdfM2KLW6ZgPTUdyXgw=;\n b=altIpzUcGhrLHUW2UgfhNwpGhlhN8pA8Fjc+XUONaTVxSW6E8Qdgor231TSOSt0TrBK4eP1+qczNw2kkbSnTOlOu3tBqYG2mzWEuUSKFS5HbHTp/aq7BUPsXovx0sp3aBsd1/VT4RcjIIOQfnUBiLgYZ+hF/2J8Bq8ZuC4r51uXfTMrtiLKcWDDPXYRPmgXW1j19a7hLltTNb/AT4xZi5ktDRNrk6SVTL0vPjlRVC00NvfHjZdVjTOkQMDMq2jwcRsHNal+mKZAOBx1R+acvnfdomws8Kb7Az8msZ29jy6AEElT8k5Dt0eSPf3hpRu2oPtCbiheXxFL47/04M6OkUg==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.118.232)\n smtp.mailfrom=nvidia.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.118.232 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C",
        "From": "Zhi Wang <zhiw@nvidia.com>",
        "To": "<rust-for-linux@vger.kernel.org>, <linux-pci@vger.kernel.org>,\n\t<linux-kernel@vger.kernel.org>",
        "CC": "<dakr@kernel.org>, <aliceryhl@google.com>, <bhelgaas@google.com>,\n\t<kwilczynski@kernel.org>, <ojeda@kernel.org>, <boqun@kernel.org>,\n\t<gary@garyguo.net>, <bjorn3_gh@protonmail.com>, <lossin@kernel.org>,\n\t<a.hindborg@kernel.org>, <tmgross@umich.edu>, <markus.probst@posteo.de>,\n\t<cjia@nvidia.com>, <smitra@nvidia.com>, <ankita@nvidia.com>,\n\t<aniketa@nvidia.com>, <kwankhede@nvidia.com>, <targupta@nvidia.com>,\n\t<acourbot@nvidia.com>, <joelagnelf@nvidia.com>, <jhubbard@nvidia.com>,\n\t<kjaju@nvidia.com>, <zhiwang@kernel.org>, Zhi Wang <zhiw@nvidia.com>",
        "Subject": "[PATCH 0/1] Rust PCI capability infrastructure and SR-IOV support",
        "Date": "Thu, 9 Apr 2026 21:52:53 +0300",
        "Message-ID": "<20260409185254.3869808-1-zhiw@nvidia.com>",
        "X-Mailer": "git-send-email 2.51.0",
        "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-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-NV-OnPremToCloud": "ExternallySecured",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "CY4PEPF0000E9D1:EE_|DS5PPFA33D606F8:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "02c7b58c-3185-454c-6783-08de966945a9",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|82310400026|7416014|1800799024|36860700016|376014|13003099007|18002099003|56012099003;",
        "X-Microsoft-Antispam-Message-Info": "\n\ttjU6uacTAtfnziRV/hEFrmyYE+yaBwLIl+0sJ+8rjy3FCyJQzIock9DRu6IaJH1xbFgo+v9kqQTwqFl4JpbenNXo2Iz7lBBQa/gPYRyP5zQZ9RFaLLiY9lRmcphE/BEHjDEh3/4kEUVHz8Gtb7rIFigZhflXobyyRAx1KpZrlYWTj6YaOohFLv8pWD3GMscGB+Oy6y6RypcAqe1dALaohCGe1f1C1F4RwoynfYg066yZ4pBpQG+1x3U/niHCwgN6DaVzPD8tknZdg4FGIa1jHhLB4gFgt1pIi7lli9XoMLpJNC50pggNUl7SPsBIaC6mWEIYZ+qwzTTyV5KJd5X4EHqZxS4BudoWYvn2ST7B2fyNBEl0mQoQfkqNqzSboUzAXW0SDtMJJCMRBAueg0ogAyUY3BiHm4ZrFmuTR8qcxzfnBMAwq+L4+k2o3wh0oy3M7SiU9XDF2+VVgYNRDrEbUWXE41v4NjuVnXMdMsZbrGaeBIiLOqWpxuMQVT0kAoz5PBae0lZIL4Pa6rWP7sK4bGuG7nhYHEK8qlKgtJHx/ie3xyrOt2cQ/N9nVSGz3Ia81mTBnV4OPf+66JzSlwln5U8uKpHOjYuSsIafTVmUxzbJm4+X0pN478eSbgq7L8qOLG+5L08LPXs6GPjVurM6dnxwwOzgf7AHCBb+6Rkh8rSEBUbTZs8XyajpcRelPCJyYpcKASoK7s46VbZZyDcEPqEl+MEoXNsploquUoH6epN9GQH46RLaHX4KVxGx3/DP84NxUfnpVGTN1be/aF+rEw==",
        "X-Forefront-Antispam-Report": "\n\tCIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(1800799024)(36860700016)(376014)(13003099007)(18002099003)(56012099003);DIR:OUT;SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n\tifygGT+cOqZMs8iHNVfBxMq49KrbEqQ57IJ4PACnDXC1kEPpKGzs26oP/8au4MYRSe4HuGKxY26G9cd3Iq3RFOD7tevMvDFUP8N/Ev7phDe5DFenKikf246pVpp8ynImYlLQQjKFxBKvUVXSQdAR0Z1cUlCd0h1kzYpBgoBWOZoH9rIr0WaXXdl3u1QfuVjbDCTiDETDybkOzboEjFZ1GZTeNNZAB3AWPi0596Hwy0dEQGBk+Pz+zi7Y4PvmfZi0w7JyTmMzBP6YHeTDZ5ZiQQ8Sdrk/N64/plltFdwof9HyBKM05ha115in9bW80IRJO3vbR3r3UlqIQqMHuJ+KHhPYLTPTfWuXRTNmEEB18kabTYA6H9e3xXHBvzeOJcXT7w4Dokiexsi55hJvrsqjagAaZd+PI0mxZAY6i6SsXwfVxSXHPoSsGHrG2ygp/vAF",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "09 Apr 2026 18:53:21.6255\n (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 02c7b58c-3185-454c-6783-08de966945a9",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n\tCY4PEPF0000E9D1.namprd03.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DS5PPFA33D606F8"
    },
    "content": "This is a follow-up to the RFC v2 series [1], reworked on top of Gary's\nio_projection patches [2] to use the Io/IoCapable/View infrastructure.\n\nThis patch has been used in Boot GSP with vGPU enabled series [3].\n\nThis patch introduces ExtCapability<T>, which implements the Io trait\nfor PCI extended capability regions. It delegates IoCapable to the\nunderlying ConfigSpace, so io_project!/io_read!/io_write! work directly\non capability register structs. ExtSriovRegs provides the #[repr(C)]\nSR-IOV register layout, and ExtSriovCapability is a convenience alias.\n\nChanges since RFC v2:\n- Hardened calculate_ext_cap_size() against corrupt capability lists.\n- Added // INVARIANT: comments at all ExtCapability construction sites\n  (make_ext_capability and cast_sized).\n- Added #[inline] to small forwarding methods (find, read_vf_bar64)\n\nChanges since RFC:\n- Rebased on io_projection branch, using Gary's Io/IoCapable traits\n- ExtCapability implements Io and delegates IoCapable to ConfigSpace\n  instead of duplicating config read/write logic\n- Dropped the fallible I/O patch (now upstream in this tree)\n- Added rust helper for PCI_EXT_CAP_NEXT() macro\n- Replaced raw `as` casts with From conversions where possible\n- Renamed SriovRegs/SriovCapability to ExtSriovRegs/ExtSriovCapability\n\n[1] https://lore.kernel.org/rust-for-linux/20260225180449.1813833-1-zhiw@nvidia.com/\n[2] https://lore.kernel.org/rust-for-linux/20260323153807.1360705-1-gary@kernel.org/\n[3] https://lore.kernel.org/rust-for-linux/20260313165336.935771-1-zhiw@nvidia.com/\n\nZhi Wang (1):\n  rust: pci: add extended capability and SR-IOV support\n\n rust/helpers/pci.c     |   5 +\n rust/kernel/pci.rs     |   7 ++\n rust/kernel/pci/cap.rs | 256 +++++++++++++++++++++++++++++++++++++++++\n 3 files changed, 268 insertions(+)\n create mode 100644 rust/kernel/pci/cap.rs\n\n\nbase-commit: 016f794f04888a304322c746b0a7794888d86e21"
}