From: Tzung-Bi Shih <tzungbi@kernel.org>
To: Bartosz Golaszewski <brgl@kernel.org>, Linus Walleij <linusw@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Danilo Krummrich <dakr@kernel.org>,
Jonathan Corbet <corbet@lwn.net>, Shuah Khan <shuah@kernel.org>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Wolfram Sang <wsa+renesas@sang-engineering.com>,
Jason Gunthorpe <jgg@nvidia.com>, Johan Hovold <johan@kernel.org>,
"Paul E . McKenney" <paulmck@kernel.org>,
Dan Williams <dan.j.williams@intel.com>,
chrome-platform@lists.linux.dev, tzungbi@kernel.org,
linux-gpio@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-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 [thread overview]
Message-ID: <20260213092958.864411-1-tzungbi@kernel.org> (raw)
This series transitions the UAF prevention logic within the GPIO core
(gpiolib) to use the 'revocable' mechanism.
The existing code aims to prevent UAF issues when the underlying GPIO
chip is removed. This series replaces that custom logic with the
generic 'revocable' API, which is designed to handle such lifecycle
dependencies. There should be no changes in behavior.
The series applies after:
- https://lore.kernel.org/all/20260213092307.858908-1-tzungbi@kernel.org
- https://lore.kernel.org/all/20260205092840.2574840-1-tzungbi@kernel.org
Tzung-Bi Shih (11):
gpio: Access `gpio_bus_type` in gpiochip_setup_dev()
gpio: Remove redundant check for struct gpio_chip
gpio: sysfs: Remove redundant check for struct gpio_chip
gpio: Ensure struct gpio_chip for gpiochip_setup_dev()
gpio: cdev: Don't check struct gpio_chip in gpio_chrdev_open()
=> The first 5 patches are refactors. They try to make the subsequent
changes easier or at least clear.
selftests: gpio: Add gpio-cdev-uaf tests
=> The following patch adds kselftest cases for some classic UAF
scenarios.
gpio: Add revocable provider handle for struct gpio_chip
gpio: cdev: Leverage revocable for accessing struct gpio_chip
gpio: Remove gpio_chip_guard by using revocable
gpio: Leverage revocable for accessing struct gpio_chip
=> The following 4 patches start to replace the existing code.
gpio: Remove unused `chip` and `srcu` in struct gpio_device
=> The last patch removes the unused fields for the custom logic as all
of them should be transiting to revocable.
---
v3:
- Change revocable API usages accordingly.
v2: https://lore.kernel.org/all/20260203061059.975605-1-tzungbi@kernel.org
- Separate fixes patches from v1. Some of them have been landed.
- Combine small patches into one as they become simpler after applying
https://lore.kernel.org/all/20260129143733.45618-1-tzungbi@kernel.org.
v1: https://lore.kernel.org/all/20260116081036.352286-1-tzungbi@kernel.org
drivers/gpio/gpiolib-cdev.c | 95 ++----
drivers/gpio/gpiolib-cdev.h | 2 +-
drivers/gpio/gpiolib-sysfs.c | 53 ++-
drivers/gpio/gpiolib-sysfs.h | 8 +-
drivers/gpio/gpiolib.c | 305 ++++++++----------
drivers/gpio/gpiolib.h | 27 +-
tools/testing/selftests/gpio/Makefile | 5 +-
tools/testing/selftests/gpio/gpio-cdev-uaf.c | 292 +++++++++++++++++
tools/testing/selftests/gpio/gpio-cdev-uaf.sh | 63 ++++
9 files changed, 541 insertions(+), 309 deletions(-)
create mode 100644 tools/testing/selftests/gpio/gpio-cdev-uaf.c
create mode 100755 tools/testing/selftests/gpio/gpio-cdev-uaf.sh
--
2.53.0.310.g728cabbaf7-goog
next reply other threads:[~2026-02-13 9:31 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-13 9:29 Tzung-Bi Shih [this message]
2026-02-13 9:29 ` [PATCH v3 01/11] gpio: Access `gpio_bus_type` in gpiochip_setup_dev() Tzung-Bi Shih
2026-02-20 7:46 ` Linus Walleij
2026-02-13 9:29 ` [PATCH v3 02/11] gpio: Remove redundant check for struct gpio_chip Tzung-Bi Shih
2026-02-20 7:48 ` Linus Walleij
2026-02-13 9:29 ` [PATCH v3 03/11] gpio: sysfs: " Tzung-Bi Shih
2026-02-20 7:51 ` Linus Walleij
2026-02-23 6:17 ` Tzung-Bi Shih
2026-02-13 9:29 ` [PATCH v3 04/11] gpio: Ensure struct gpio_chip for gpiochip_setup_dev() Tzung-Bi Shih
2026-02-18 10:24 ` Bartosz Golaszewski
2026-02-13 9:29 ` [PATCH v3 05/11] gpio: cdev: Don't check struct gpio_chip in gpio_chrdev_open() Tzung-Bi Shih
2026-02-20 7:51 ` Linus Walleij
2026-02-13 9:29 ` [PATCH v3 06/11] selftests: gpio: Add gpio-cdev-uaf tests Tzung-Bi Shih
2026-02-20 7:52 ` Linus Walleij
2026-02-13 9:29 ` [PATCH v3 07/11] gpio: Add revocable provider handle for struct gpio_chip Tzung-Bi Shih
2026-02-18 10:28 ` Bartosz Golaszewski
2026-02-13 9:29 ` [PATCH v3 08/11] gpio: cdev: Leverage revocable for accessing " Tzung-Bi Shih
2026-02-13 9:29 ` [PATCH v3 09/11] gpio: Remove gpio_chip_guard by using revocable Tzung-Bi Shih
2026-02-13 9:29 ` [PATCH v3 10/11] gpio: Leverage revocable for accessing struct gpio_chip Tzung-Bi Shih
2026-02-13 9:29 ` [PATCH v3 11/11] gpio: Remove unused `chip` and `srcu` in struct gpio_device Tzung-Bi Shih
2026-02-18 10:26 ` [PATCH v3 00/11] gpio: Adopt revocable mechanism for UAF prevention Bartosz Golaszewski
2026-02-23 6:21 ` Tzung-Bi Shih
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260213092958.864411-1-tzungbi@kernel.org \
--to=tzungbi@kernel.org \
--cc=brgl@kernel.org \
--cc=chrome-platform@lists.linux.dev \
--cc=corbet@lwn.net \
--cc=dakr@kernel.org \
--cc=dan.j.williams@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=jgg@nvidia.com \
--cc=johan@kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linusw@kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=paulmck@kernel.org \
--cc=rafael@kernel.org \
--cc=shuah@kernel.org \
--cc=wsa+renesas@sang-engineering.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox