aboutsummaryrefslogtreecommitdiff
path: root/drivers/char/watchdog/machzwd.c
diff options
context:
space:
mode:
authorJiri Slaby <jirislaby@gmail.com>2007-02-08 18:39:36 +0100
committerWim Van Sebroeck <wim@iguana.be>2007-02-12 22:43:02 +0100
commit82eb7c5059de64bd43f6b3cf3f128470f2b3fb83 (patch)
tree6735317bd9c19574f85fa7e21d0071562e824355 /drivers/char/watchdog/machzwd.c
parent35fcf53870eaa6cc966604a6e36df1c2c1577540 (diff)
[WATCHDOG] timers cleanup
- Use timer macros to set function and data members and to modify expiration time. - Use DEFINE_TIMER for single (platform dependent) watchdog timers and do not init them at run-time in these cases. - del_timer_sync is common in most cases -- we want to wait for timer function if it's still running. Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: Steve Hill <steve@navaho.co.uk> Cc: Heiko Ronsdorf <hero@ihg.uni-duisburg.de> Cc: Fernando Fuganti <fuganti@conectiva.com.br> Cc: Gergely Madarasz <gorgo@itc.hu> Cc: Ken Hollis <khollis@bitgate.com> Cc: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Wim Van Sebroeck <wim@iguana.be> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'drivers/char/watchdog/machzwd.c')
-rw-r--r--drivers/char/watchdog/machzwd.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/char/watchdog/machzwd.c b/drivers/char/watchdog/machzwd.c
index 391998d260c..4a328ba0d26 100644
--- a/drivers/char/watchdog/machzwd.c
+++ b/drivers/char/watchdog/machzwd.c
@@ -118,12 +118,14 @@ static int action = 0;
module_param(action, int, 0);
MODULE_PARM_DESC(action, "after watchdog resets, generate: 0 = RESET(*) 1 = SMI 2 = NMI 3 = SCI");
+static void zf_ping(unsigned long data);
+
static int zf_action = GEN_RESET;
static unsigned long zf_is_open;
static char zf_expect_close;
static spinlock_t zf_lock;
static spinlock_t zf_port_lock;
-static struct timer_list zf_timer;
+static DEFINE_TIMER(zf_timer, zf_ping, 0, 0);
static unsigned long next_heartbeat = 0;
@@ -220,9 +222,7 @@ static void zf_timer_on(void)
next_heartbeat = jiffies + ZF_USER_TIMEO;
/* start the timer for internal ping */
- zf_timer.expires = jiffies + ZF_HW_TIMEO;
-
- add_timer(&zf_timer);
+ mod_timer(&zf_timer, jiffies + ZF_HW_TIMEO);
/* start watchdog timer */
ctrl_reg = zf_get_control();
@@ -260,8 +260,7 @@ static void zf_ping(unsigned long data)
zf_set_control(ctrl_reg);
spin_unlock_irqrestore(&zf_port_lock, flags);
- zf_timer.expires = jiffies + ZF_HW_TIMEO;
- add_timer(&zf_timer);
+ mod_timer(&zf_timer, jiffies + ZF_HW_TIMEO);
}else{
printk(KERN_CRIT PFX ": I will reset your machine\n");
}
@@ -465,11 +464,6 @@ static int __init zf_init(void)
zf_set_status(0);
zf_set_control(0);
- /* this is the timer that will do the hard work */
- init_timer(&zf_timer);
- zf_timer.function = zf_ping;
- zf_timer.data = 0;
-
return 0;
no_reboot: