softdog.c kernel 2.4.29

From: Jacques Basson
Date: Wed Mar 16 2005 - 02:52:39 EST


Hi

There is a bug in the softdog.c (v 0.05) in the 2.4 kernel series
(certainly in 2.4.29 and there are no references to it in the latest
Changelog) that won't reboot the machine if /dev/watchdog is closed
unexpectedly and nowayout is not set. The softdog.c (v 0.07) in 2.6.11
is not affected, but I have been informed by the vendor of analog output
cards that we use (ICP DAS) that they currently have no plans to port
their driver to the 2.6 series.

Anyway, here is a simple patch that does the job. I hope that it is of
use to someone:

diff -Naur softdog.c.orig softdog.c
--- softdog.c.orig 2003-11-28 20:26:20.000000000 +0200
+++ softdog.c 2005-03-16 09:12:34.000000000 +0200
@@ -124,7 +124,7 @@
* Shut off the timer.
* Lock it in if it's a module and we set nowayout
*/
- if (expect_close || nowayout == 0) {
+ if (expect_close && nowayout == 0) {
del_timer(&watchdog_ticktock);
} else {
printk(KERN_CRIT "SOFTDOG: WDT device closed
unexpectedly. WDT will not stop!\n");

Jacques

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/