From: Eliav Farber <farbere@amazon.com>
To: <rafael@kernel.org>, <tony.luck@intel.com>, <bp@alien8.de>,
<guohanjun@huawei.com>, <mchehab@kernel.org>,
<xueshuai@linux.alibaba.com>, <lenb@kernel.org>,
<laurent.pinchart@ideasonboard.com>, <linusw@kernel.org>,
<brgl@kernel.org>, <orsonzhai@gmail.com>,
<baolin.wang@linux.alibaba.com>, <zhang.lyra@gmail.com>,
<jic23@kernel.org>, <dlechner@baylibre.com>, <nuno.sa@analog.com>,
<andy@kernel.org>, <dmitry.torokhov@gmail.com>,
<hansg@kernel.org>, <ilpo.jarvinen@linux.intel.com>,
<W_Armin@gmx.de>, <ukleinek@kernel.org>,
<fabio.m.de.francesco@linux.intel.com>, <kaihengf@nvidia.com>,
<ankita@nvidia.com>, <leitao@debian.org>, <farbere@amazon.com>,
<pedro.pbg@usp.br>, <paulmck@kernel.org>, <frederic@kernel.org>,
<kees@kernel.org>, <linux-acpi@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <linux-gpio@vger.kernel.org>,
<linux-pwm@vger.kernel.org>, <linux-iio@vger.kernel.org>,
<linux-input@vger.kernel.org>,
<platform-driver-x86@vger.kernel.org>
Subject: [PATCH v4 00/13] notifier: add device-managed registration APIs and convert drivers
Date: Sun, 26 Jul 2026 10:17:26 +0000 [thread overview]
Message-ID: <20260726101739.33170-1-farbere@amazon.com> (raw)
Many drivers repeat the same boilerplate when registering notifiers with
device lifetime:
1. Register the notifier with *_notifier_chain_register()
2. Check for error
3. Register a devm action to unregister on teardown
4. Implement a per-driver static unregister callback
This series adds devm_atomic_notifier_chain_register() and
devm_blocking_notifier_chain_register() that automatically unregister
the notifier when the device is unbound, then converts 11 drivers to use
them.
Each conversion eliminates a per-driver unregister callback and the
associated devm_add_action_or_reset() call, reducing code by ~15 lines
per driver.
The implementation follows the established devres pattern used by other
device-managed kernel APIs.
Changes in v4:
- Patch 8: split the removal of unused
ghes_register_vendor_record_notifier() and
ghes_unregister_vendor_record_notifier() into a separate preceding
patch (Andy Shevchenko)
Changes in v3:
- Patch 1: drop devm_raw_notifier_chain_register() since raw notifiers
require caller-provided locking which is incompatible with the devres
teardown callback (Sashiko)
- Patch 12: fix commit message to accurately describe the old code as
using devres_alloc() + register_reboot_notifier() (Sashiko)
Changes in v2:
- Patch 1: drop 'extern' from new function prototypes (Bart Van Assche)
- Patch 1: fix kerneldoc to use 'Return:' format (Bart Van Assche)
- Patch 1: use <linux/device/devres.h> instead of <linux/device.h>
(Andy Shevchenko)
- Patch 8: also remove unused ghes_register_vendor_record_notifier() and
ghes_unregister_vendor_record_notifier() along with their exports and
ghes.h declarations (Jonathan Cameron)
Eliav Farber (13):
notifier: add device-managed registration APIs
pwm: iqs620a: use devm_blocking_notifier_chain_register()
iio: light: iqs621-als: use devm_blocking_notifier_chain_register()
iio: position: iqs624: use devm_blocking_notifier_chain_register()
gpio: adp5585: use devm_blocking_notifier_chain_register()
platform/x86: bitland-mifs-wmi: use
devm_blocking_notifier_chain_register()
Input: adp5585: use devm_blocking_notifier_chain_register()
ACPI: APEI: GHES: remove unused
ghes_{,un}register_vendor_record_notifier()
ACPI: APEI: GHES: use devm_blocking_notifier_chain_register()
platform/x86: uniwill-wmi: use devm_blocking_notifier_chain_register()
gpio: eic-sprd: use devm_atomic_notifier_chain_register()
gpio: gpiolib-kunit: use devm_blocking_notifier_chain_register()
reboot: use devm_blocking_notifier_chain_register()
drivers/acpi/apei/ghes.c | 27 +-----
drivers/gpio/gpio-adp5585.c | 20 +---
drivers/gpio/gpio-eic-sprd.c | 17 +---
drivers/gpio/gpiolib-kunit.c | 14 +--
drivers/iio/light/iqs621-als.c | 24 +----
drivers/iio/position/iqs624-pos.c | 24 +----
drivers/input/keyboard/adp5585-keys.c | 18 +---
drivers/platform/x86/bitland-mifs-wmi.c | 17 +---
drivers/platform/x86/uniwill/uniwill-wmi.c | 17 +---
drivers/pwm/pwm-iqs620a.c | 21 +----
include/acpi/ghes.h | 16 ----
include/linux/notifier.h | 7 ++
kernel/notifier.c | 103 +++++++++++++++++++++
kernel/reboot.c | 24 +----
14 files changed, 140 insertions(+), 209 deletions(-)
--
2.47.3
next reply other threads:[~2026-07-26 10:17 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-26 10:17 Eliav Farber [this message]
2026-07-26 10:17 ` [PATCH v4 01/13] notifier: add device-managed registration APIs Eliav Farber
2026-07-26 10:17 ` [PATCH v4 02/13] pwm: iqs620a: use devm_blocking_notifier_chain_register() Eliav Farber
2026-07-26 10:17 ` [PATCH v4 03/13] iio: light: iqs621-als: " Eliav Farber
2026-07-26 10:17 ` [PATCH v4 04/13] iio: position: iqs624: " Eliav Farber
2026-07-26 10:17 ` [PATCH v4 05/13] gpio: adp5585: " Eliav Farber
2026-07-26 10:27 ` sashiko-bot
2026-07-26 10:17 ` [PATCH v4 06/13] platform/x86: bitland-mifs-wmi: " Eliav Farber
2026-07-26 10:27 ` sashiko-bot
2026-07-26 10:17 ` [PATCH v4 07/13] Input: adp5585: " Eliav Farber
2026-07-26 10:17 ` [PATCH v4 08/13] ACPI: APEI: GHES: remove unused ghes_{,un}register_vendor_record_notifier() Eliav Farber
2026-07-26 10:17 ` [PATCH v4 09/13] ACPI: APEI: GHES: use devm_blocking_notifier_chain_register() Eliav Farber
2026-07-26 10:17 ` [PATCH v4 10/13] platform/x86: uniwill-wmi: " Eliav Farber
2026-07-26 10:17 ` [PATCH v4 11/13] gpio: eic-sprd: use devm_atomic_notifier_chain_register() Eliav Farber
2026-07-26 10:28 ` sashiko-bot
2026-07-26 10:17 ` [PATCH v4 12/13] gpio: gpiolib-kunit: use devm_blocking_notifier_chain_register() Eliav Farber
2026-07-26 10:17 ` [PATCH v4 13/13] reboot: " Eliav Farber
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=20260726101739.33170-1-farbere@amazon.com \
--to=farbere@amazon.com \
--cc=W_Armin@gmx.de \
--cc=andy@kernel.org \
--cc=ankita@nvidia.com \
--cc=baolin.wang@linux.alibaba.com \
--cc=bp@alien8.de \
--cc=brgl@kernel.org \
--cc=dlechner@baylibre.com \
--cc=dmitry.torokhov@gmail.com \
--cc=fabio.m.de.francesco@linux.intel.com \
--cc=frederic@kernel.org \
--cc=guohanjun@huawei.com \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jic23@kernel.org \
--cc=kaihengf@nvidia.com \
--cc=kees@kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=leitao@debian.org \
--cc=lenb@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=nuno.sa@analog.com \
--cc=orsonzhai@gmail.com \
--cc=paulmck@kernel.org \
--cc=pedro.pbg@usp.br \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=tony.luck@intel.com \
--cc=ukleinek@kernel.org \
--cc=xueshuai@linux.alibaba.com \
--cc=zhang.lyra@gmail.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