Re: [PATCH] watchdog: core: Make use of devm_register_reboot_notifier()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/04/2017 08:47 AM, Andy Shevchenko wrote:
On Tue, Apr 4, 2017 at 5:10 PM, Andrey Smirnov <andrew.smirnov@xxxxxxxxx> wrote:
Save a bit of cleanup code by leveraging newly added
devm_register_reboot_notifier().

@@ -247,7 +247,8 @@ static int __watchdog_register_device(struct watchdog_device *wdd)
        if (test_bit(WDOG_STOP_ON_REBOOT, &wdd->status)) {
                wdd->reboot_nb.notifier_call = watchdog_reboot_notifier;

-               ret = register_reboot_notifier(&wdd->reboot_nb);

+               ret = devm_register_reboot_notifier(wdd->parent,
+                                                   &wdd->reboot_nb);

I'm not sure it's logically correct. Perhaps binding to the actual
watchdog device would be better.
Though, Guenter can correct me.


As mentioned in my other reply, it doesn't work since wdd->parent can be NULL.
It might be possible to move the code into watchdog_dev_register() and tie it
to the watchdog device, but I have not explored what that would require.

Guenter

Could it be one line after all?

                if (ret) {
                        pr_err("watchdog%d: Cannot register reboot notifier (%d)\n",
                               wdd->id, ret);
@@ -302,9 +303,6 @@ static void __watchdog_unregister_device(struct watchdog_device *wdd)
        if (wdd->ops->restart)
                unregister_restart_handler(&wdd->restart_nb);

-       if (test_bit(WDOG_STOP_ON_REBOOT, &wdd->status))
-               unregister_reboot_notifier(&wdd->reboot_nb);
-


--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux