Commit a4826ccd authored by Peter Wächtler's avatar Peter Wächtler Committed by Linus Torvalds

[PATCH] oss/wavfront.c - convert cli to spinlocks

parent 4c6c6e5c
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
#include <linux/ptrace.h> #include <linux/ptrace.h>
#include <linux/fcntl.h> #include <linux/fcntl.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/spinlock.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/config.h> #include <linux/config.h>
...@@ -274,6 +274,7 @@ struct wf_config { ...@@ -274,6 +274,7 @@ struct wf_config {
wait_queue_head_t interrupt_sleeper; wait_queue_head_t interrupt_sleeper;
} dev; } dev;
static spinlock_t lock=SPIN_LOCK_UNLOCKED;
static int detect_wffx(void); static int detect_wffx(void);
static int wffx_ioctl (wavefront_fx_info *); static int wffx_ioctl (wavefront_fx_info *);
static int wffx_init (void); static int wffx_init (void);
...@@ -2202,12 +2203,12 @@ wavefront_should_cause_interrupt (int val, int port, int timeout) ...@@ -2202,12 +2203,12 @@ wavefront_should_cause_interrupt (int val, int port, int timeout)
{ {
unsigned long flags; unsigned long flags;
save_flags (flags); /* this will not help on SMP - but at least it compiles */
cli(); spin_lock_irqsave(&lock, flags);
dev.irq_ok = 0; dev.irq_ok = 0;
outb (val,port); outb (val,port);
interruptible_sleep_on_timeout (&dev.interrupt_sleeper, timeout); interruptible_sleep_on_timeout (&dev.interrupt_sleeper, timeout);
restore_flags (flags); spin_unlock_irqrestore(&lock,flags);
} }
static int __init wavefront_hw_reset (void) static int __init wavefront_hw_reset (void)
...@@ -2223,8 +2224,6 @@ static int __init wavefront_hw_reset (void) ...@@ -2223,8 +2224,6 @@ static int __init wavefront_hw_reset (void)
printk (KERN_DEBUG LOGNAME "autodetecting WaveFront IRQ\n"); printk (KERN_DEBUG LOGNAME "autodetecting WaveFront IRQ\n");
sti ();
irq_mask = probe_irq_on (); irq_mask = probe_irq_on ();
outb (0x0, dev.control_port); outb (0x0, dev.control_port);
......
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