watchdog: shwdt: fix usage of mod_timer
authorDavid Engraf <david.engraf@sysgo.com>
Wed, 20 Jul 2011 13:03:39 +0000 (15:03 +0200)
committerWim Van Sebroeck <wim@iguana.be>
Tue, 2 Aug 2011 08:22:49 +0000 (08:22 +0000)
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@sysgo.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Wim Van sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: stable <stable@kernel.org>
drivers/watchdog/shwdt.c

index db84f2322d1ad1ef4d69f12ed2dd2936a03d4b16..a267dc078dafb777f6855a56aef73ae48c1228f5 100644 (file)
@@ -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;