it87_wdt: Work around non-working CIR interrupts
Subsystems (2)
PATCH 1/1 it87_wdt: Work around non-working CIR interrupts
From: Marc van der Wal <[email protected]>
On some hardware platforms, the it87_wdt watchdog resets the machine despite the watchdog daemon running and writing to /dev/watchdog.
This is due to Consumer IR buffer underrun interrupts being used as triggers to reset the timer. On some buggy hardware implementations such as the iEi AFL-12A-N270 single-board computer, this method does not work.
However, resetting the timer by writing its original timeout value in its configuration register over and over again suppresses the unwanted reboots.
Add a module option (nocir), 0 by default in order not to break existing setups. Setting it to 1 enables the workaround.
Fixes bug #42801 <https://bugzilla.kernel.org/show_bug.cgi?id=42801>.
Tested primarily on Linux 3.5.7, applies cleanly on Linux 3.13.5.
---
Documentation/watchdog/watchdog-parameters.txt +2 -0
@@ -150,6 +150,8 @@ nowayout: Disable watchdog shutdown on c ------------------------------------------------- it87_wdt: nogameport: Forbid the activation of game port, default=0 +nocir: Forbid the use of CIR (workaround for some buggy setups); set to 1 if +system resets despite watchdog daemon running, default=0 exclusive: Watchdog exclusive device open, default=1 timeout: Watchdog timeout in seconds, default=60 testmode: Watchdog test mode (1 = no reboot), default=0
drivers/watchdog/it87_wdt.c +31 -10
121 lines not on this page · raw message
Quoted 14 lines · Marc van der Wal
From: Marc van der Wal <[email protected]>
On some hardware platforms, the
it87_wdtwatchdog resets the machine despite the watchdog daemon running and writing to/dev/watchdog.This is due to Consumer IR buffer underrun interrupts being used as triggers to reset the timer. On some buggy hardware implementations such as the iEi AFL-12A-N270 single-board computer, this method does not work.
However, resetting the timer by writing its original timeout value in its configuration register over and over again suppresses the unwanted reboots.
Quoted 7 lines
Add a module option (nocir), 0 by default in order not to break existing setups. Setting it to 1 enables the workaround.
Fixes bug #42801 <https://bugzilla.kernel.org/show_bug.cgi?id=42801>.
Tested primarily on Linux 3.5.7, applies cleanly on Linux 3.13.5.Signed-off-by Marc van der Wal <[email protected]>
Hi Marc,
Quoted 14 lines
From: Marc van der Wal <[email protected]>
On some hardware platforms, the
it87_wdtwatchdog resets the machine despite the watchdog daemon running and writing to/dev/watchdog.This is due to Consumer IR buffer underrun interrupts being used as triggers to reset the timer. On some buggy hardware implementations such as the iEi AFL-12A-N270 single-board computer, this method does not work.
However, resetting the timer by writing its original timeout value in its configuration register over and over again suppresses the unwanted reboots.
Quoted 8 lines
Add a module option (nocir), 0 by default in order not to break existing setups. Setting it to 1 enables the workaround.
Fixes bug #42801 <https://bugzilla.kernel.org/show_bug.cgi?id=42801>.
Tested primarily on Linux 3.5.7, applies cleanly on Linux 3.13.5.Signed-off-by Marc van der Wal <[email protected]>---
Patch has been added to linux-watchdog-next.
Kind regards,
Wim.