Messages in this thread | | | From | Andrey Smirnov <> | Date | Thu, 30 Mar 2017 15:55:43 -0700 | Subject | Re: [PATCH] kernel/reboot: add devm_register_reboot_notifier |
| |
On Wed, Mar 29, 2017 at 4:17 PM, Andrew Morton <akpm@linux-foundation.org> wrote: > On Mon, 20 Mar 2017 10:17:53 -0700 Andrey Smirnov <andrew.smirnov@gmail.com> wrote: > >> Add devm_* wrapper around register_reboot_notifier to simplify device >> specific reboot notifier registration/unregistration. >> >> --- a/kernel/reboot.c >> +++ b/kernel/reboot.c >> @@ -104,6 +104,33 @@ 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; >> +} >> +EXPORT_SYMBOL(devm_register_reboot_notifier); > > Seems reasonable. Can we please have some patches which actually use > this?
I will be submitting a serdev/watchdog driver in next couple of weeks, I can CC you on that thread.
Thanks, Andrey Smirnov
| |