From: Moritz Fischer <m...@kernel.org>

[ Upstream commit 538c08f4c89580fc644e2bc64e0a4b86c925da4e ]

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 <m...@kernel.org>
Signed-off-by: Alexandre Belloni <alexandre.bell...@free-electrons.com>
Signed-off-by: Sasha Levin <alexander.le...@microsoft.com>
---
 drivers/rtc/rtc-ds1374.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/rtc/rtc-ds1374.c b/drivers/rtc/rtc-ds1374.c
index 5b5bc7dc3a1c..c0eb113588ff 100644
--- a/drivers/rtc/rtc-ds1374.c
+++ b/drivers/rtc/rtc-ds1374.c
@@ -548,14 +548,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;
-- 
2.14.1

Reply via email to