git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
char
/
watchdog
/
cpu5wdt.c
diff --git
a/drivers/char/watchdog/cpu5wdt.c
b/drivers/char/watchdog/cpu5wdt.c
index
2865dac
..
00bdabb
100644
(file)
--- a/
drivers/char/watchdog/cpu5wdt.c
+++ b/
drivers/char/watchdog/cpu5wdt.c
@@
-28,6
+28,8
@@
#include <linux/init.h>
#include <linux/ioport.h>
#include <linux/timer.h>
#include <linux/init.h>
#include <linux/ioport.h>
#include <linux/timer.h>
+#include <linux/completion.h>
+#include <linux/jiffies.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include <asm/io.h>
#include <asm/uaccess.h>
@@
-56,7
+58,7
@@
static int ticks = 10000;
/* some device data */
static struct {
/* some device data */
static struct {
- struct
semaphore
stop;
+ struct
completion
stop;
volatile int running;
struct timer_list timer;
volatile int queue;
volatile int running;
struct timer_list timer;
volatile int queue;
@@
-84,7
+86,7
@@
static void cpu5wdt_trigger(unsigned long unused)
}
else {
/* ticks doesn't matter anyway */
}
else {
/* ticks doesn't matter anyway */
-
up
(&cpu5wdt_device.stop);
+
complete
(&cpu5wdt_device.stop);
}
}
}
}
@@
-181,7
+183,7
@@
static int cpu5wdt_ioctl(struct inode *inode, struct file *file, unsigned int cm
}
break;
default:
}
break;
default:
- return -ENO
IOCTLCMD
;
+ return -ENO
TTY
;
}
return 0;
}
}
return 0;
}
@@
-196,7
+198,7
@@
static ssize_t cpu5wdt_write(struct file *file, const char __user *buf, size_t c
return count;
}
return count;
}
-static struct file_operations cpu5wdt_fops = {
+static
const
struct file_operations cpu5wdt_fops = {
.owner = THIS_MODULE,
.llseek = no_llseek,
.ioctl = cpu5wdt_ioctl,
.owner = THIS_MODULE,
.llseek = no_llseek,
.ioctl = cpu5wdt_ioctl,
@@
-238,7
+240,7
@@
static int __devinit cpu5wdt_init(void)
if ( !val )
printk(KERN_INFO PFX "sorry, was my fault\n");
if ( !val )
printk(KERN_INFO PFX "sorry, was my fault\n");
- init_
MUTEX_LOCKED
(&cpu5wdt_device.stop);
+ init_
completion
(&cpu5wdt_device.stop);
cpu5wdt_device.queue = 0;
clear_bit(0, &cpu5wdt_device.inuse);
cpu5wdt_device.queue = 0;
clear_bit(0, &cpu5wdt_device.inuse);
@@
-268,7
+270,7
@@
static void __devexit cpu5wdt_exit(void)
{
if ( cpu5wdt_device.queue ) {
cpu5wdt_device.queue = 0;
{
if ( cpu5wdt_device.queue ) {
cpu5wdt_device.queue = 0;
-
dow
n(&cpu5wdt_device.stop);
+
wait_for_completio
n(&cpu5wdt_device.stop);
}
misc_deregister(&cpu5wdt_misc);
}
misc_deregister(&cpu5wdt_misc);