rtc: ds1374: wdt: Fix stop/start ioctl always returning -EINVAL
authorMoritz Fischer <mdf@kernel.org>
Mon, 24 Apr 2017 22:05:12 +0000 (15:05 -0700)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Thu, 4 May 2017 12:46:25 +0000 (14:46 +0200)
The WDIOC_SETOPTIONS case in the watchdog ioctl would alwayss falls
through to the -EINVAL case. This is wrong since thew watchdog does
actually get stopped or started correctly.

Fixes: 920f91e50c5b ("drivers/rtc/rtc-ds1374.c: add watchdog support")
Signed-off-by: Moritz Fischer <mdf@kernel.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
drivers/rtc/rtc-ds1374.c

index 2a8b5b3..38a2e9e 100644 (file)
@@ -546,14 +546,15 @@ static long ds1374_wdt_ioctl(struct file *file, unsigned int cmd,
                if (options & WDIOS_DISABLECARD) {
                        pr_info("disable watchdog\n");
                        ds1374_wdt_disable();
+                       return 0;
                }
 
                if (options & WDIOS_ENABLECARD) {
                        pr_info("enable watchdog\n");
                        ds1374_wdt_settimeout(wdt_margin);
                        ds1374_wdt_ping();
+                       return 0;
                }
-
                return -EINVAL;
        }
        return -ENOTTY;