[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20110802082737.GA7843@infomag.iguana.be>
Date: Tue, 2 Aug 2011 10:27:37 +0200
From: Wim Van Sebroeck <wim@...ana.be>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
LKML <linux-kernel@...r.kernel.org>,
Linux Watchdog Mailing List <linux-watchdog@...r.kernel.org>,
David Engraf <david.engraf@...go.com>,
Paul Mundt <lethal@...ux-sh.org>,
Mart Gerrits <mart1987@...il.com>,
Josh Boyer <jwboyer@...hat.com>
Subject: [GIT PULL REQUEST] watchdog - Fixes
Hi Linus,
Please pull from 'master' branch of
git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-watchdog.git
or if master.kernel.org hasn't synced up yet:
master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-watchdog.git
This will update the following files:
drivers/watchdog/Kconfig | 3 ---
drivers/watchdog/nv_tco.c | 8 ++++++++
drivers/watchdog/shwdt.c | 2 +-
3 files changed, 9 insertions(+), 4 deletions(-)
with these Changes:
Author: Josh Boyer <jwboyer@...hat.com>
Date: Sat Jul 30 10:18:48 2011 -0400
watchdog: Cleanup WATCHDOG_CORE help text
The newly added WATCHDOG_CORE option is a bool, but the help text suggests
it can be built as a module. Fix it up.
Signed-off-by: Josh Boyer <jwboyer@...hat.com>
Signed-off-by: Wim Van Sebroeck <wim@...ana.be>
Author: Mart Gerrits <mart1987@...il.com>
Date: Sat Jul 30 16:59:12 2011 +0200
watchdog: Fix POST failure on ASUS P5N32-E SLI and similar boards
At present the module does not unset the NO_REBOOT bit upon shutdown, this
causes the BIOS to fail the POST once and reset. During the next boot it
displays the following error message:
***** Warning: System BOOT Fail *****
Your system last boot fail or POST interrupted.
Please enter setup to load default and reboot again.
Press F1 to continue, DEL to enter SETUP
With this patch the NO_REBOOT flag will be unset on shutdown and thus stop
this failure from occurring.
Tested on 'ASUS P5N32-E SLI with BIOS revision 1801' and
'ASUS P5N32-E SLI PLUS with BIOS revision 1502'.
Signed-off-by: Mart Gerrits <mart1987@...il.com>
Signed-off-by: Wim Van Sebroeck <wim@...ana.be>
Author: David Engraf <david.engraf@...go.com>
Date: Wed Jul 20 15:03:39 2011 +0200
watchdog: shwdt: fix usage of mod_timer
Fix the usage of mod_timer() and make the driver usable. mod_timer() must
be called with an absolute timeout in jiffies. The old implementation
used a relative timeout thus the hardware watchdog was never triggered.
Signed-off-by: David Engraf <david.engraf@...go.com>
Signed-off-by: Paul Mundt <lethal@...ux-sh.org>
Signed-off-by: Wim Van sebroeck <wim@...ana.be>
Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
Cc: stable <stable@...nel.org>
The Changes can also be looked at on:
http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-watchdog.git;a=summary
For completeness, I added the overal diff below.
Greetings,
Wim.
================================================================================
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index f441726..86b0735 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -36,9 +36,6 @@ config WATCHDOG_CORE
and gives them the /dev/watchdog interface (and later also the
sysfs interface).
- To compile this driver as a module, choose M here: the module will
- be called watchdog.
-
config WATCHDOG_NOWAYOUT
bool "Disable watchdog shutdown on close"
help
diff --git a/drivers/watchdog/nv_tco.c b/drivers/watchdog/nv_tco.c
index afa78a5..809f41c 100644
--- a/drivers/watchdog/nv_tco.c
+++ b/drivers/watchdog/nv_tco.c
@@ -458,7 +458,15 @@ static int __devexit nv_tco_remove(struct platform_device *dev)
static void nv_tco_shutdown(struct platform_device *dev)
{
+ u32 val;
+
tco_timer_stop();
+
+ /* Some BIOSes fail the POST (once) if the NO_REBOOT flag is not
+ * unset during shutdown. */
+ pci_read_config_dword(tco_pci, MCP51_SMBUS_SETUP_B, &val);
+ val &= ~MCP51_SMBUS_SETUP_B_TCO_REBOOT;
+ pci_write_config_dword(tco_pci, MCP51_SMBUS_SETUP_B, val);
}
static struct platform_driver nv_tco_driver = {
diff --git a/drivers/watchdog/shwdt.c b/drivers/watchdog/shwdt.c
index db84f23..a267dc0 100644
--- a/drivers/watchdog/shwdt.c
+++ b/drivers/watchdog/shwdt.c
@@ -64,7 +64,7 @@
* misses its deadline, the kernel timer will allow the WDT to overflow.
*/
static int clock_division_ratio = WTCSR_CKS_4096;
-#define next_ping_period(cks) msecs_to_jiffies(cks - 4)
+#define next_ping_period(cks) (jiffies + msecs_to_jiffies(cks - 4))
static const struct watchdog_info sh_wdt_info;
static struct platform_device *sh_wdt_dev;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists