patch-2.4.20 linux-2.4.20/drivers/char/advantechwdt.c
Next file: linux-2.4.20/drivers/char/agp/agp.h
Previous file: linux-2.4.20/drivers/char/acquirewdt.c
Back to the patch index
Back to the overall index
- Lines: 64
- Date:
Thu Nov 28 15:53:12 2002
- Orig file:
linux-2.4.19/drivers/char/advantechwdt.c
- Orig date:
Fri Aug 2 17:39:43 2002
diff -urN linux-2.4.19/drivers/char/advantechwdt.c linux-2.4.20/drivers/char/advantechwdt.c
@@ -20,6 +20,8 @@
*
* (c) Copyright 1995 Alan Cox <alan@redhat.com>
*
+ * 14-Dec-2001 Matt Domsch <Matt_Domsch@dell.com>
+ * Added nowayout module option to override CONFIG_WATCHDOG_NOWAYOUT
*/
#include <linux/config.h>
@@ -57,6 +59,15 @@
static int wd_margin = 60; /* 60 sec default timeout */
+#ifdef CONFIG_WATCHDOG_NOWAYOUT
+static int nowayout = 1;
+#else
+static int nowayout = 0;
+#endif
+
+MODULE_PARM(nowayout,"i");
+MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=CONFIG_WATCHDOG_NOWAYOUT)");
+
/*
* Kernel methods.
*/
@@ -108,17 +119,20 @@
return -ESPIPE;
if (count) {
-#ifndef CONFIG_WATCHDOG_NOWAYOUT
- size_t i;
+ if (!nowayout) {
+ size_t i;
- adv_expect_close = 0;
-
- for (i = 0; i != count; i++) {
- if (buf[i] == 'V')
- adv_expect_close = 42;
+ adv_expect_close = 0;
+
+ for (i = 0; i != count; i++) {
+ char c;
+ if(get_user(c, buf+i))
+ return -EFAULT;
+ if (c == 'V')
+ adv_expect_close = 42;
+ }
}
-#endif
- advwdt_ping();
+ advwdt_ping();
}
return count;
}
@@ -129,7 +143,7 @@
{
int new_margin;
static struct watchdog_info ident = {
- options: WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT,
+ options: WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE,
firmware_version: 0,
identity: "Advantech WDT"
};
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)