summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2008-01-18 14:06:19 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-01-18 14:06:19 -0800
commitc9daa2722a3f1967e3e9750fd4cb6a7352a3cd63 (patch)
treea28c40b8e4f8ee1d653d5add903e03a9be0ede8a
parent977c8fa4d75d4ebe7ebbe116eed9e06f780fb34d (diff)
parent0d710cba3afde2109030254ee90654fbb580e8af (diff)
downloadlinux-3.10-c9daa2722a3f1967e3e9750fd4cb6a7352a3cd63.tar.gz
linux-3.10-c9daa2722a3f1967e3e9750fd4cb6a7352a3cd63.tar.bz2
linux-3.10-c9daa2722a3f1967e3e9750fd4cb6a7352a3cd63.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog: [WATCHDOG] clarify watchdog operation in documentation [WATCHDOG] Revert "Stop looking for device as soon as one is found"
-rw-r--r--Documentation/watchdog/watchdog-api.txt38
-rw-r--r--drivers/watchdog/w83697hf_wdt.c4
2 files changed, 22 insertions, 20 deletions
diff --git a/Documentation/watchdog/watchdog-api.txt b/Documentation/watchdog/watchdog-api.txt
index bb7cb1d31ec..4cc4ba9d715 100644
--- a/Documentation/watchdog/watchdog-api.txt
+++ b/Documentation/watchdog/watchdog-api.txt
@@ -42,23 +42,27 @@ like this source file: see Documentation/watchdog/src/watchdog-simple.c
A more advanced driver could for example check that a HTTP server is
still responding before doing the write call to ping the watchdog.
-When the device is closed, the watchdog is disabled. This is not
-always such a good idea, since if there is a bug in the watchdog
-daemon and it crashes the system will not reboot. Because of this,
-some of the drivers support the configuration option "Disable watchdog
-shutdown on close", CONFIG_WATCHDOG_NOWAYOUT. If it is set to Y when
-compiling the kernel, there is no way of disabling the watchdog once
-it has been started. So, if the watchdog daemon crashes, the system
-will reboot after the timeout has passed. Watchdog devices also usually
-support the nowayout module parameter so that this option can be controlled
-at runtime.
-
-Drivers will not disable the watchdog, unless a specific magic character 'V'
-has been sent /dev/watchdog just before closing the file. If the userspace
-daemon closes the file without sending this special character, the driver
-will assume that the daemon (and userspace in general) died, and will stop
-pinging the watchdog without disabling it first. This will then cause a
-reboot if the watchdog is not re-opened in sufficient time.
+When the device is closed, the watchdog is disabled, unless the "Magic
+Close" feature is supported (see below). This is not always such a
+good idea, since if there is a bug in the watchdog daemon and it
+crashes the system will not reboot. Because of this, some of the
+drivers support the configuration option "Disable watchdog shutdown on
+close", CONFIG_WATCHDOG_NOWAYOUT. If it is set to Y when compiling
+the kernel, there is no way of disabling the watchdog once it has been
+started. So, if the watchdog daemon crashes, the system will reboot
+after the timeout has passed. Watchdog devices also usually support
+the nowayout module parameter so that this option can be controlled at
+runtime.
+
+Magic Close feature:
+
+If a driver supports "Magic Close", the driver will not disable the
+watchdog unless a specific magic character 'V' has been sent to
+/dev/watchdog just before closing the file. If the userspace daemon
+closes the file without sending this special character, the driver
+will assume that the daemon (and userspace in general) died, and will
+stop pinging the watchdog without disabling it first. This will then
+cause a reboot if the watchdog is not re-opened in sufficient time.
The ioctl API:
diff --git a/drivers/watchdog/w83697hf_wdt.c b/drivers/watchdog/w83697hf_wdt.c
index 6ea125eabea..c622a0e6c9a 100644
--- a/drivers/watchdog/w83697hf_wdt.c
+++ b/drivers/watchdog/w83697hf_wdt.c
@@ -382,10 +382,8 @@ wdt_init(void)
/* we will autodetect the W83697HF/HG watchdog */
for (i = 0; ((!found) && (w83697hf_ioports[i] != 0)); i++) {
wdt_io = w83697hf_ioports[i];
- if (!w83697hf_check_wdt()) {
+ if (!w83697hf_check_wdt())
found++;
- break;
- }
}
} else {
if (!w83697hf_check_wdt())