File tree Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Expand file tree Collapse file tree 1 file changed +5
-4
lines changed Original file line number Diff line number Diff line change 28
28
#include <linux/init.h>
29
29
#include <linux/ioport.h>
30
30
#include <linux/timer.h>
31
+ #include <linux/completion.h>
31
32
#include <linux/jiffies.h>
32
33
#include <asm/io.h>
33
34
#include <asm/uaccess.h>
@@ -57,7 +58,7 @@ static int ticks = 10000;
57
58
/* some device data */
58
59
59
60
static struct {
60
- struct semaphore stop ;
61
+ struct completion stop ;
61
62
volatile int running ;
62
63
struct timer_list timer ;
63
64
volatile int queue ;
@@ -85,7 +86,7 @@ static void cpu5wdt_trigger(unsigned long unused)
85
86
}
86
87
else {
87
88
/* ticks doesn't matter anyway */
88
- up (& cpu5wdt_device .stop );
89
+ complete (& cpu5wdt_device .stop );
89
90
}
90
91
91
92
}
@@ -239,7 +240,7 @@ static int __devinit cpu5wdt_init(void)
239
240
if ( !val )
240
241
printk (KERN_INFO PFX "sorry, was my fault\n" );
241
242
242
- init_MUTEX_LOCKED (& cpu5wdt_device .stop );
243
+ init_completion (& cpu5wdt_device .stop );
243
244
cpu5wdt_device .queue = 0 ;
244
245
245
246
clear_bit (0 , & cpu5wdt_device .inuse );
@@ -269,7 +270,7 @@ static void __devexit cpu5wdt_exit(void)
269
270
{
270
271
if ( cpu5wdt_device .queue ) {
271
272
cpu5wdt_device .queue = 0 ;
272
- down (& cpu5wdt_device .stop );
273
+ wait_for_completion (& cpu5wdt_device .stop );
273
274
}
274
275
275
276
misc_deregister (& cpu5wdt_misc );
You can’t perform that action at this time.
0 commit comments