diff options
author | Igor Pylypiv <igor.pylypiv@gmail.com> | 2018-02-28 00:59:12 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-05-30 07:49:03 +0200 |
commit | 63efa8423d9c73461aabc532ef98f07a575e5b1c (patch) | |
tree | b17b88ec90562e3a939ccc7c04766df5420f109b | |
parent | 9eee777d312c75e626d684549027c230d4fb92df (diff) | |
download | linux-stable-63efa8423d9c73461aabc532ef98f07a575e5b1c.tar.gz linux-stable-63efa8423d9c73461aabc532ef98f07a575e5b1c.tar.bz2 linux-stable-63efa8423d9c73461aabc532ef98f07a575e5b1c.zip |
watchdog: f71808e_wdt: Fix magic close handling
[ Upstream commit 7bd3e7b743956afbec30fb525bc3c5e22e3d475c ]
Watchdog close is "expected" when any byte is 'V' not just the last one.
Writing "V" to the device fails because the last byte is the end of string.
$ echo V > /dev/watchdog
f71808e_wdt: Unexpected close, not stopping watchdog!
Signed-off-by: Igor Pylypiv <igor.pylypiv@gmail.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/watchdog/f71808e_wdt.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/watchdog/f71808e_wdt.c b/drivers/watchdog/f71808e_wdt.c index aa93df5833dc..2048aad91add 100644 --- a/drivers/watchdog/f71808e_wdt.c +++ b/drivers/watchdog/f71808e_wdt.c @@ -520,7 +520,8 @@ static ssize_t watchdog_write(struct file *file, const char __user *buf, char c; if (get_user(c, buf + i)) return -EFAULT; - expect_close = (c == 'V'); + if (c == 'V') + expect_close = true; } /* Properly order writes across fork()ed processes */ |