Commit e4eeb143 authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

[PATCH] fix all the other watchdogs Dave's changes broke the same

parent 3f7a8e97
...@@ -228,6 +228,8 @@ ibwdt_open(struct inode *inode, struct file *file) ...@@ -228,6 +228,8 @@ ibwdt_open(struct inode *inode, struct file *file)
spin_unlock(&ibwdt_lock); spin_unlock(&ibwdt_lock);
return -EBUSY; return -EBUSY;
} }
if (nowayout)
MOD_INC_USE_COUNT;
/* Activate */ /* Activate */
ibwdt_is_open = 1; ibwdt_is_open = 1;
......
...@@ -53,6 +53,9 @@ static int indydog_open(struct inode *inode, struct file *file) ...@@ -53,6 +53,9 @@ static int indydog_open(struct inode *inode, struct file *file)
if( test_and_set_bit(0,&indydog_alive) ) if( test_and_set_bit(0,&indydog_alive) )
return -EBUSY; return -EBUSY;
if (nowayout)
MOD_INC_USE_COUNT;
/* /*
* Activate timer * Activate timer
*/ */
......
...@@ -390,6 +390,9 @@ static int zf_open(struct inode *inode, struct file *file) ...@@ -390,6 +390,9 @@ static int zf_open(struct inode *inode, struct file *file)
return -EBUSY; return -EBUSY;
} }
if (nowayout)
MOD_INC_USE_COUNT;
zf_is_open = 1; zf_is_open = 1;
spin_unlock(&zf_lock); spin_unlock(&zf_lock);
......
...@@ -93,7 +93,9 @@ static int mixcomwd_open(struct inode *inode, struct file *file) ...@@ -93,7 +93,9 @@ static int mixcomwd_open(struct inode *inode, struct file *file)
} }
mixcomwd_ping(); mixcomwd_ping();
if (!nowayout) { if (nowayout) {
MOD_INC_USE_COUNT;
} else {
if(mixcomwd_timer_alive) { if(mixcomwd_timer_alive) {
del_timer(&mixcomwd_timer); del_timer(&mixcomwd_timer);
mixcomwd_timer_alive=0; mixcomwd_timer_alive=0;
......
...@@ -430,7 +430,7 @@ static int pcwd_open(struct inode *ino, struct file *filep) ...@@ -430,7 +430,7 @@ static int pcwd_open(struct inode *ino, struct file *filep)
atomic_inc( &open_allowed ); atomic_inc( &open_allowed );
return -EBUSY; return -EBUSY;
} }
MOD_INC_USE_COUNT;
/* Enable the port */ /* Enable the port */
if (revision == PCWD_REVISION_C) { if (revision == PCWD_REVISION_C) {
spin_lock(&io_lock); spin_lock(&io_lock);
......
...@@ -206,7 +206,9 @@ static int fop_open(struct inode * inode, struct file * file) ...@@ -206,7 +206,9 @@ static int fop_open(struct inode * inode, struct file * file)
/* Just in case we're already talking to someone... */ /* Just in case we're already talking to someone... */
if(wdt_is_open) if(wdt_is_open)
return -EBUSY; return -EBUSY;
if (nowayout) {
MOD_INC_USE_COUNT;
}
/* Good, fire up the show */ /* Good, fire up the show */
wdt_is_open = 1; wdt_is_open = 1;
wdt_startup(); wdt_startup();
......
...@@ -229,6 +229,8 @@ static int fop_open(struct inode * inode, struct file * file) ...@@ -229,6 +229,8 @@ static int fop_open(struct inode * inode, struct file * file)
return -EBUSY; return -EBUSY;
/* Good, fire up the show */ /* Good, fire up the show */
wdt_startup(); wdt_startup();
if (nowayout)
MOD_INC_USE_COUNT;
return 0; return 0;
default: default:
......
...@@ -189,6 +189,10 @@ static int sh_wdt_open(struct inode *inode, struct file *file) ...@@ -189,6 +189,10 @@ static int sh_wdt_open(struct inode *inode, struct file *file)
if (test_and_set_bit(0, &sh_is_open)) if (test_and_set_bit(0, &sh_is_open))
return -EBUSY; return -EBUSY;
if (nowayout) {
MOD_INC_USE_COUNT;
}
sh_wdt_start(); sh_wdt_start();
break; break;
......
...@@ -103,7 +103,9 @@ static int softdog_open(struct inode *inode, struct file *file) ...@@ -103,7 +103,9 @@ static int softdog_open(struct inode *inode, struct file *file)
{ {
if(test_and_set_bit(0, &timer_alive)) if(test_and_set_bit(0, &timer_alive))
return -EBUSY; return -EBUSY;
if (nowayout) {
MOD_INC_USE_COUNT;
}
/* /*
* Activate timer * Activate timer
*/ */
......
...@@ -99,6 +99,8 @@ static int wdt977_open(struct inode *inode, struct file *file) ...@@ -99,6 +99,8 @@ static int wdt977_open(struct inode *inode, struct file *file)
if (nowayout) if (nowayout)
{ {
MOD_INC_USE_COUNT;
/* do not permit disabling the watchdog by writing 0 to reg. 0xF2 */ /* do not permit disabling the watchdog by writing 0 to reg. 0xF2 */
if (!timeoutM) timeoutM = DEFAULT_TIMEOUT; if (!timeoutM) timeoutM = DEFAULT_TIMEOUT;
} }
......
...@@ -365,6 +365,9 @@ static int wdtpci_open(struct inode *inode, struct file *file) ...@@ -365,6 +365,9 @@ static int wdtpci_open(struct inode *inode, struct file *file)
if (down_trylock(&open_sem)) if (down_trylock(&open_sem))
return -EBUSY; return -EBUSY;
if (nowayout) {
MOD_INC_USE_COUNT;
}
/* /*
* Activate * Activate
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment