diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-13 19:10:08 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-13 19:10:08 -0500 |
commit | 58a3bb59973e33a428d72fa530a3d1d81feb0e8f (patch) | |
tree | 11a6f4838ec20d96bc287a62f21c4b10f0c86b1a /drivers/char/watchdog/mixcomwd.c | |
parent | 7f1f86a0d04e79f8165e6f50d329a520b8cd11e5 (diff) | |
parent | 88d5a7bb75b5e8f600e79b16abaf008c7fdfd27d (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
* master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog: (23 commits)
[WATCHDOG] timers cleanup
[WATCHDOG] ib700wdt.c - convert to platform_device part 2
[WATCHDOG] ib700wdt.c - convert to platform_device
[WATCHDOG] ib700wdt.c spinlock/WDIOC_SETOPTIONS changes
[WATCHDOG] ib700wdt.c small clean-up's
[WATCHDOG] ib700wdt.c clean-up init and exit routines
[WATCHDOG] ib700_wdt.c stop + set_heartbeat operations
[WATCHDOG] show default value for nowayout in module parameter
[WATCHDOG] advantechwdt.c - convert to platform_device part 2
[WATCHDOG] advantechwdt.c - convert to platform_device
[WATCHDOG] advantechwdt.c - move set_heartbeat to a seperate function
[WATCHDOG] advantechwdt.c - cleanup before platform_device patches
[WATCHDOG] acquirewdt.c - convert to platform_device part 2
[WATCHDOG] acquirewdt.c - convert to platform_device
[WATCHDOG] acquirewdt.c - clean before platform_device patches
[WATCHDOG] pcwd_usb.c - get heartbeat from dip switches
[WATCHDOG] pcwd.c - e-mail adres update
[WATCHDOG] pcwd_usb.c - get heartbeat from dip switches
[WATCHDOG] pcwd_usb.c - document includes
[WATCHDOG] pcwd_pci.c - spinlock fixes
...
Diffstat (limited to 'drivers/char/watchdog/mixcomwd.c')
-rw-r--r-- | drivers/char/watchdog/mixcomwd.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/drivers/char/watchdog/mixcomwd.c b/drivers/char/watchdog/mixcomwd.c index c2dac0aa1d62..f35e2848aa3e 100644 --- a/drivers/char/watchdog/mixcomwd.c +++ b/drivers/char/watchdog/mixcomwd.c | |||
@@ -56,16 +56,18 @@ static int mixcomwd_ioports[] = { 0x180, 0x280, 0x380, 0x000 }; | |||
56 | #define FLASHCOM_WATCHDOG_OFFSET 0x4 | 56 | #define FLASHCOM_WATCHDOG_OFFSET 0x4 |
57 | #define FLASHCOM_ID 0x18 | 57 | #define FLASHCOM_ID 0x18 |
58 | 58 | ||
59 | static void mixcomwd_timerfun(unsigned long d); | ||
60 | |||
59 | static unsigned long mixcomwd_opened; /* long req'd for setbit --RR */ | 61 | static unsigned long mixcomwd_opened; /* long req'd for setbit --RR */ |
60 | 62 | ||
61 | static int watchdog_port; | 63 | static int watchdog_port; |
62 | static int mixcomwd_timer_alive; | 64 | static int mixcomwd_timer_alive; |
63 | static DEFINE_TIMER(mixcomwd_timer, NULL, 0, 0); | 65 | static DEFINE_TIMER(mixcomwd_timer, mixcomwd_timerfun, 0, 0); |
64 | static char expect_close; | 66 | static char expect_close; |
65 | 67 | ||
66 | static int nowayout = WATCHDOG_NOWAYOUT; | 68 | static int nowayout = WATCHDOG_NOWAYOUT; |
67 | module_param(nowayout, int, 0); | 69 | module_param(nowayout, int, 0); |
68 | MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=CONFIG_WATCHDOG_NOWAYOUT)"); | 70 | MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=" __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); |
69 | 71 | ||
70 | static void mixcomwd_ping(void) | 72 | static void mixcomwd_ping(void) |
71 | { | 73 | { |
@@ -77,7 +79,7 @@ static void mixcomwd_timerfun(unsigned long d) | |||
77 | { | 79 | { |
78 | mixcomwd_ping(); | 80 | mixcomwd_ping(); |
79 | 81 | ||
80 | mod_timer(&mixcomwd_timer,jiffies+ 5*HZ); | 82 | mod_timer(&mixcomwd_timer, jiffies + 5 * HZ); |
81 | } | 83 | } |
82 | 84 | ||
83 | /* | 85 | /* |
@@ -114,12 +116,8 @@ static int mixcomwd_release(struct inode *inode, struct file *file) | |||
114 | printk(KERN_ERR "mixcomwd: release called while internal timer alive"); | 116 | printk(KERN_ERR "mixcomwd: release called while internal timer alive"); |
115 | return -EBUSY; | 117 | return -EBUSY; |
116 | } | 118 | } |
117 | init_timer(&mixcomwd_timer); | ||
118 | mixcomwd_timer.expires=jiffies + 5 * HZ; | ||
119 | mixcomwd_timer.function=mixcomwd_timerfun; | ||
120 | mixcomwd_timer.data=0; | ||
121 | mixcomwd_timer_alive=1; | 119 | mixcomwd_timer_alive=1; |
122 | add_timer(&mixcomwd_timer); | 120 | mod_timer(&mixcomwd_timer, jiffies + 5 * HZ); |
123 | } else { | 121 | } else { |
124 | printk(KERN_CRIT "mixcomwd: WDT device closed unexpectedly. WDT will not stop!\n"); | 122 | printk(KERN_CRIT "mixcomwd: WDT device closed unexpectedly. WDT will not stop!\n"); |
125 | } | 123 | } |
@@ -285,7 +283,7 @@ static void __exit mixcomwd_exit(void) | |||
285 | if(mixcomwd_timer_alive) { | 283 | if(mixcomwd_timer_alive) { |
286 | printk(KERN_WARNING "mixcomwd: I quit now, hardware will" | 284 | printk(KERN_WARNING "mixcomwd: I quit now, hardware will" |
287 | " probably reboot!\n"); | 285 | " probably reboot!\n"); |
288 | del_timer(&mixcomwd_timer); | 286 | del_timer_sync(&mixcomwd_timer); |
289 | mixcomwd_timer_alive=0; | 287 | mixcomwd_timer_alive=0; |
290 | } | 288 | } |
291 | } | 289 | } |