[PATCH 12/12] reboot: use devm_blocking_notifier_chain_register()
From: Eliav Farber
Date: Thu Jul 23 2026 - 14:10:27 EST
Replace the blocking_notifier_chain_register() +
devm_add_action_or_reset() pattern with a single call to
devm_blocking_notifier_chain_register(), removing the
devm_unregister_reboot_notifier() callback.
Signed-off-by: Eliav Farber <farbere@xxxxxxxxxx>
---
kernel/reboot.c | 24 ++----------------------
1 file changed, 2 insertions(+), 22 deletions(-)
diff --git a/kernel/reboot.c b/kernel/reboot.c
index 695c33e75efd..557609419989 100644
--- a/kernel/reboot.c
+++ b/kernel/reboot.c
@@ -136,30 +136,10 @@ int unregister_reboot_notifier(struct notifier_block *nb)
}
EXPORT_SYMBOL(unregister_reboot_notifier);
-static void devm_unregister_reboot_notifier(struct device *dev, void *res)
-{
- WARN_ON(unregister_reboot_notifier(*(struct notifier_block **)res));
-}
-
int devm_register_reboot_notifier(struct device *dev, struct notifier_block *nb)
{
- struct notifier_block **rcnb;
- int ret;
-
- rcnb = devres_alloc(devm_unregister_reboot_notifier,
- sizeof(*rcnb), GFP_KERNEL);
- if (!rcnb)
- return -ENOMEM;
-
- ret = register_reboot_notifier(nb);
- if (!ret) {
- *rcnb = nb;
- devres_add(dev, rcnb);
- } else {
- devres_free(rcnb);
- }
-
- return ret;
+ return devm_blocking_notifier_chain_register(dev,
+ &reboot_notifier_list, nb);
}
EXPORT_SYMBOL(devm_register_reboot_notifier);
--
2.47.3