watchdog: enable it before setting timeout
authorDenis Vlasenko <vda.linux@googlemail.com>
Mon, 20 Apr 2009 09:26:17 +0000 (09:26 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Mon, 20 Apr 2009 09:26:17 +0000 (09:26 -0000)
function                                             old     new   delta
watchdog_main                                        239     259     +20
static.enable                                          -       4      +4

miscutils/watchdog.c

index f85138e119e2483bd4f5a7f0f8ca3dd5e4737bd9..893cef0ac8989897427c1142b1e8c3f7a5658134 100644 (file)
@@ -59,13 +59,20 @@ int watchdog_main(int argc, char **argv)
        /* WDIOC_SETTIMEOUT takes seconds, not milliseconds */
        htimer_duration = htimer_duration / 1000;
 #ifndef WDIOC_SETTIMEOUT
-#error WDIOC_SETTIMEOUT is not defined, cannot compile watchdog applet
+# error WDIOC_SETTIMEOUT is not defined, cannot compile watchdog applet
 #else
+# if defined WDIOC_SETOPTIONS && defined WDIOS_ENABLECARD
+       {
+               static const int enable = WDIOS_ENABLECARD;
+               ioctl_or_warn(3, WDIOC_SETOPTIONS, (void*) &enable);
+       }
+# endif
        ioctl_or_warn(3, WDIOC_SETTIMEOUT, &htimer_duration);
 #endif
+
 #if 0
        ioctl_or_warn(3, WDIOC_GETTIMEOUT, &htimer_duration);
-       printf("watchdog: SW timer is %dms, HW timer is %dms\n",
+       printf("watchdog: SW timer is %dms, HW timer is %ds\n",
                stimer_duration, htimer_duration * 1000);
 #endif