Signed-off-by: William Hubbs <w.d.hubbs@xxxxxxxxx> --- drivers/staging/speakup/speakup_soft.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/staging/speakup/speakup_soft.c b/drivers/staging/speakup/speakup_soft.c index e2f5c81..83e0845 100644 --- a/drivers/staging/speakup/speakup_soft.c +++ b/drivers/staging/speakup/speakup_soft.c @@ -179,23 +179,23 @@ static int softsynth_open(struct inode *inode, struct file *fp) unsigned long flags; /*if ((fp->f_flags & O_ACCMODE) != O_RDONLY) */ /* return -EPERM; */ - spk_lock(flags); + spin_lock_irqsave(&speakup_info.spinlock, flags); if (synth_soft.alive) { - spk_unlock(flags); + spin_unlock_irqrestore(&speakup_info.spinlock, flags); return -EBUSY; } synth_soft.alive = 1; - spk_unlock(flags); + spin_unlock_irqrestore(&speakup_info.spinlock, flags); return 0; } static int softsynth_close(struct inode *inode, struct file *fp) { unsigned long flags; - spk_lock(flags); + spin_lock_irqsave(&speakup_info.spinlock, flags); synth_soft.alive = 0; init_pos = 0; - spk_unlock(flags); + spin_unlock_irqrestore(&speakup_info.spinlock, flags); /* Make sure we let applications go before leaving */ speakup_start_ttys(); return 0; @@ -212,12 +212,12 @@ static ssize_t softsynth_read(struct file *fp, char *buf, size_t count, unsigned long flags; DEFINE_WAIT(wait); - spk_lock(flags); + spin_lock_irqsave(&speakup_info.spinlock, flags); while (1) { prepare_to_wait(&speakup_event, &wait, TASK_INTERRUPTIBLE); if (!synth_buffer_empty() || speakup_info.flushing) break; - spk_unlock(flags); + spin_unlock_irqrestore(&speakup_info.spinlock, flags); if (fp->f_flags & O_NONBLOCK) { finish_wait(&speakup_event, &wait); return -EAGAIN; @@ -227,7 +227,7 @@ static ssize_t softsynth_read(struct file *fp, char *buf, size_t count, return -ERESTARTSYS; } schedule(); - spk_lock(flags); + spin_lock_irqsave(&speakup_info.spinlock, flags); } finish_wait(&speakup_event, &wait); @@ -244,16 +244,16 @@ static ssize_t softsynth_read(struct file *fp, char *buf, size_t count, } else { ch = synth_buffer_getc(); } - spk_unlock(flags); + spin_unlock_irqrestore(&speakup_info.spinlock, flags); if (copy_to_user(cp, &ch, 1)) return -EFAULT; - spk_lock(flags); + spin_lock_irqsave(&speakup_info.spinlock, flags); chars_sent++; cp++; } *pos += chars_sent; empty = synth_buffer_empty(); - spk_unlock(flags); + spin_unlock_irqrestore(&speakup_info.spinlock, flags); if (empty) { speakup_start_ttys(); *pos = 0; @@ -285,10 +285,10 @@ static unsigned int softsynth_poll(struct file *fp, int ret = 0; poll_wait(fp, &speakup_event, wait); - spk_lock(flags); + spin_lock_irqsave(&speakup_info.spinlock, flags); if (!synth_buffer_empty() || speakup_info.flushing) ret = POLLIN | POLLRDNORM; - spk_unlock(flags); + spin_unlock_irqrestore(&speakup_info.spinlock, flags); return ret; } -- 1.8.1.5 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel