Hi
--- linux-2.6.38-generic-part6/drivers/watchdog/core/watchdog_dev.c 2011-06-16 22:52:56.763937624 +0200
+++ linux-2.6.38-generic-part7/drivers/watchdog/core/watchdog_dev.c 2011-06-17 09:52:32.870632731 +0200
@@ -126,11 +126,15 @@
* Stop the watchdog if it is still active and unmark it active.
* This function returns zero on success or a negative errno code for
* failure.
+ * If the 'nowayout' feature was set, the watchdog cannot be stopped.
*/
static int watchdog_stop(struct watchdog_device *wddev)
{
- int err;
+ int err = -1;
+
+ if (test_bit(WDOG_NO_WAY_OUT,&wdd->status))
+ return err;
If you return err at this point you never clean the bit WDOG_ACTIVE then
the timer will keep resetting the wdt because the bit is still active.
if (test_bit(WDOG_ACTIVE,&wdd->status)) {
err = wddev->ops->stop(wddev);
@@ -151,7 +155,7 @@
*
* A write to a watchdog device is defined as a keepalive ping.
* Writing the magic 'V' sequence allows the next close to turn
- * off the watchdog.
+ * off the watchdog (if 'nowayout' is not set).
*/
static ssize_t watchdog_write(struct file *file, const char __user *data,
diff -urN linux-2.6.38-generic-part6/include/linux/watchdog.h linux-2.6.38-generic-part7/include/linux/watchdog.h
--- linux-2.6.38-generic-part6/include/linux/watchdog.h 2011-06-17 12:17:15.285063678 +0200
+++ linux-2.6.38-generic-part7/include/linux/watchdog.h 2011-06-17 12:17:39.205063756 +0200
@@ -86,6 +86,7 @@
#define WDOG_DEV_OPEN 1 /* is the watchdog opened via
* /dev/watchdog */
#define WDOG_EXPECT_RELEASE 2 /* did we receive the magic char ? */
+#define WDOG_NO_WAY_OUT 3 /* is 'nowayout' feature set ? */
};
/* drivers/watchdog/core/watchdog_core.c */
--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Participe en Universidad 2012, del 13 al 17 de febrero de 2012.
Habana, Cuba: http://www.congresouniversidad.cu
Consulte la enciclopedia colaborativa cubana. http://www.ecured.cu
Participe en el Segundo Congreso Medio Ambiente Construido y
Desarrollo Sustentable (MACDES 2011) del 6 al 9 de diciembre de 2011,
Hotel Nacional, Habana, Cuba: http://macdes.cujae.edu.cu
--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html