Show a cover letter.

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

{
    "id": 2196244,
    "url": "http://patchwork.ozlabs.org/api/covers/2196244/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/cover/20260213092958.864411-1-tzungbi@kernel.org/",
    "project": {
        "id": 42,
        "url": "http://patchwork.ozlabs.org/api/projects/42/?format=api",
        "name": "Linux GPIO development",
        "link_name": "linux-gpio",
        "list_id": "linux-gpio.vger.kernel.org",
        "list_email": "linux-gpio@vger.kernel.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260213092958.864411-1-tzungbi@kernel.org>",
    "list_archive_url": null,
    "date": "2026-02-13T09:29:47",
    "name": "[v3,00/11] gpio: Adopt revocable mechanism for UAF prevention",
    "submitter": {
        "id": 83557,
        "url": "http://patchwork.ozlabs.org/api/people/83557/?format=api",
        "name": "Tzung-Bi Shih",
        "email": "tzungbi@kernel.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/cover/20260213092958.864411-1-tzungbi@kernel.org/mbox/",
    "series": [
        {
            "id": 492068,
            "url": "http://patchwork.ozlabs.org/api/series/492068/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=492068",
            "date": "2026-02-13T09:29:47",
            "name": "gpio: Adopt revocable mechanism for UAF prevention",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/492068/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2196244/comments/",
    "headers": {
        "Return-Path": "\n <linux-gpio+bounces-31657-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-gpio@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=sf/b1GXX;\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-gpio+bounces-31657-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=\"sf/b1GXX\"",
            "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 4fC6Nq4xpmz1xvQ\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 13 Feb 2026 20:31:07 +1100 (AEDT)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 43553303D30A\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 13 Feb 2026 09:31:04 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 5BC302D9EC5;\n\tFri, 13 Feb 2026 09:31:03 +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 1CCF2265629;\n\tFri, 13 Feb 2026 09:31:02 +0000 (UTC)",
            "by smtp.kernel.org (Postfix) with ESMTPSA id B834DC16AAE;\n\tFri, 13 Feb 2026 09:30:59 +0000 (UTC)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1770975063; cv=none;\n b=ujCI1rBXSRqznGp++/9crGgLf9Jad7cAF1cFX+ucwuGLh9AuwaWo3YLfcLVTiU2ywAww//jRSrRg2TJY86RZT//zeoQAGWNui37nectbHUdkl507VCxnFE7mLZKRMxnFRox0R/DGLoBxdfBDYiVKSPv9tx3wBBOwIwTthregKVM=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1770975063; c=relaxed/simple;\n\tbh=ATT9nRVbaGc4c5P4DPW3faqeclZGjNYQ4Wg9eaJSyJY=;\n\th=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=l6fiL+Cf1mB5cNzaAuK6234ukYqsKKDlW/4ZrXdumrOacJ2ZS7fRxUKxE1nlLH7Fih6pc2hNUhZXL/ps0lHG8KHcOTSInTz1GZZg6ZYciEekcAWBpvcJXIjGpgpbZKxSPmmN/sDFRvKpXkvhfpKvxvbawok4G0N0a+XGwJ8CIrM=",
        "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=sf/b1GXX; 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=1770975062;\n\tbh=ATT9nRVbaGc4c5P4DPW3faqeclZGjNYQ4Wg9eaJSyJY=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=sf/b1GXX5UoB9DMwnIa7VT0KRv5y8T+3rN9fqJGxq+gVBzqiz6zyJN6LqXCi2PKiH\n\t c0E30B1fxTP13WFPc+z2cPoEsiuc/BjJFrKoKdBiz5zDubs6IxsC1jfAZ4/3mK6A99\n\t WoVe4Om8S5uORExXm8713nHQpRTtCkfoQHmncEbEH/HGNObS1C55LHl/TWt1FjJC8C\n\t hyNkuYHeGUuVprK5OiYVydI3VVnx9++O+Lyrpxi40nj4LlN+EoGtsFfo7tMdNSnEpd\n\t NvQ7jr5QGMKjO6tCJukmXOSuMXttRZRTlkMSCY3ypUn2Fo7QutceSbgSVCWNpkDmXw\n\t F7KytC3DCyQwA==",
        "From": "Tzung-Bi Shih <tzungbi@kernel.org>",
        "To": "Bartosz Golaszewski <brgl@kernel.org>,\n\tLinus Walleij <linusw@kernel.org>",
        "Cc": "Greg Kroah-Hartman <gregkh@linuxfoundation.org>,\n\t\"Rafael J. Wysocki\" <rafael@kernel.org>,\n\tDanilo Krummrich <dakr@kernel.org>,\n\tJonathan Corbet <corbet@lwn.net>,\n\tShuah Khan <shuah@kernel.org>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tWolfram Sang <wsa+renesas@sang-engineering.com>,\n\tJason Gunthorpe <jgg@nvidia.com>,\n\tJohan Hovold <johan@kernel.org>,\n\t\"Paul E . McKenney\" <paulmck@kernel.org>,\n\tDan Williams <dan.j.williams@intel.com>,\n\tchrome-platform@lists.linux.dev,\n\ttzungbi@kernel.org,\n\tlinux-gpio@vger.kernel.org,\n\tlinux-kselftest@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org",
        "Subject": "[PATCH v3 00/11] gpio: Adopt revocable mechanism for UAF prevention",
        "Date": "Fri, 13 Feb 2026 09:29:47 +0000",
        "Message-ID": "<20260213092958.864411-1-tzungbi@kernel.org>",
        "X-Mailer": "git-send-email 2.53.0.310.g728cabbaf7-goog",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-gpio@vger.kernel.org",
        "List-Id": "<linux-gpio.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-gpio+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-gpio+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit"
    },
    "content": "This series transitions the UAF prevention logic within the GPIO core\n(gpiolib) to use the 'revocable' mechanism.\n\nThe existing code aims to prevent UAF issues when the underlying GPIO\nchip is removed.  This series replaces that custom logic with the\ngeneric 'revocable' API, which is designed to handle such lifecycle\ndependencies.  There should be no changes in behavior.\n\nThe series applies after:\n- https://lore.kernel.org/all/20260213092307.858908-1-tzungbi@kernel.org\n- https://lore.kernel.org/all/20260205092840.2574840-1-tzungbi@kernel.org\n\nTzung-Bi Shih (11):\n  gpio: Access `gpio_bus_type` in gpiochip_setup_dev()\n  gpio: Remove redundant check for struct gpio_chip\n  gpio: sysfs: Remove redundant check for struct gpio_chip\n  gpio: Ensure struct gpio_chip for gpiochip_setup_dev()\n  gpio: cdev: Don't check struct gpio_chip in gpio_chrdev_open()\n=> The first 5 patches are refactors.  They try to make the subsequent\n   changes easier or at least clear.\n\n  selftests: gpio: Add gpio-cdev-uaf tests\n=> The following patch adds kselftest cases for some classic UAF\n   scenarios.\n\n  gpio: Add revocable provider handle for struct gpio_chip\n  gpio: cdev: Leverage revocable for accessing struct gpio_chip\n  gpio: Remove gpio_chip_guard by using revocable\n  gpio: Leverage revocable for accessing struct gpio_chip\n=> The following 4 patches start to replace the existing code.\n\n  gpio: Remove unused `chip` and `srcu` in struct gpio_device\n=> The last patch removes the unused fields for the custom logic as all\n   of them should be transiting to revocable.\n\n---\nv3:\n- Change revocable API usages accordingly.\n\nv2: https://lore.kernel.org/all/20260203061059.975605-1-tzungbi@kernel.org\n- Separate fixes patches from v1.  Some of them have been landed.\n- Combine small patches into one as they become simpler after applying\n  https://lore.kernel.org/all/20260129143733.45618-1-tzungbi@kernel.org.\n\nv1: https://lore.kernel.org/all/20260116081036.352286-1-tzungbi@kernel.org\n\n drivers/gpio/gpiolib-cdev.c                   |  95 ++----\n drivers/gpio/gpiolib-cdev.h                   |   2 +-\n drivers/gpio/gpiolib-sysfs.c                  |  53 ++-\n drivers/gpio/gpiolib-sysfs.h                  |   8 +-\n drivers/gpio/gpiolib.c                        | 305 ++++++++----------\n drivers/gpio/gpiolib.h                        |  27 +-\n tools/testing/selftests/gpio/Makefile         |   5 +-\n tools/testing/selftests/gpio/gpio-cdev-uaf.c  | 292 +++++++++++++++++\n tools/testing/selftests/gpio/gpio-cdev-uaf.sh |  63 ++++\n 9 files changed, 541 insertions(+), 309 deletions(-)\n create mode 100644 tools/testing/selftests/gpio/gpio-cdev-uaf.c\n create mode 100755 tools/testing/selftests/gpio/gpio-cdev-uaf.sh"
}