[PATCH] sem2mutex: sound/oss/
Semaphore to mutex conversion. The conversion was generated via scripts, and the result was validated automatically via a script as well. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

gecommit door
Linus Torvalds

bovenliggende
82d4dc5adb
commit
910f5d202c
@@ -105,6 +105,8 @@
|
||||
#include <linux/gameport.h>
|
||||
#include <linux/wait.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/mutex.h>
|
||||
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/page.h>
|
||||
@@ -191,7 +193,7 @@ struct solo1_state {
|
||||
unsigned ena;
|
||||
|
||||
spinlock_t lock;
|
||||
struct semaphore open_sem;
|
||||
struct mutex open_mutex;
|
||||
mode_t open_mode;
|
||||
wait_queue_head_t open_wait;
|
||||
|
||||
@@ -1581,7 +1583,7 @@ static int solo1_release(struct inode *inode, struct file *file)
|
||||
lock_kernel();
|
||||
if (file->f_mode & FMODE_WRITE)
|
||||
drain_dac(s, file->f_flags & O_NONBLOCK);
|
||||
down(&s->open_sem);
|
||||
mutex_lock(&s->open_mutex);
|
||||
if (file->f_mode & FMODE_WRITE) {
|
||||
stop_dac(s);
|
||||
outb(0, s->iobase+6); /* disable DMA */
|
||||
@@ -1595,7 +1597,7 @@ static int solo1_release(struct inode *inode, struct file *file)
|
||||
}
|
||||
s->open_mode &= ~(FMODE_READ | FMODE_WRITE);
|
||||
wake_up(&s->open_wait);
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
unlock_kernel();
|
||||
return 0;
|
||||
}
|
||||
@@ -1624,21 +1626,21 @@ static int solo1_open(struct inode *inode, struct file *file)
|
||||
VALIDATE_STATE(s);
|
||||
file->private_data = s;
|
||||
/* wait for device to become free */
|
||||
down(&s->open_sem);
|
||||
mutex_lock(&s->open_mutex);
|
||||
while (s->open_mode & (FMODE_READ | FMODE_WRITE)) {
|
||||
if (file->f_flags & O_NONBLOCK) {
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
return -EBUSY;
|
||||
}
|
||||
add_wait_queue(&s->open_wait, &wait);
|
||||
__set_current_state(TASK_INTERRUPTIBLE);
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
schedule();
|
||||
remove_wait_queue(&s->open_wait, &wait);
|
||||
set_current_state(TASK_RUNNING);
|
||||
if (signal_pending(current))
|
||||
return -ERESTARTSYS;
|
||||
down(&s->open_sem);
|
||||
mutex_lock(&s->open_mutex);
|
||||
}
|
||||
s->fmt = AFMT_U8;
|
||||
s->channels = 1;
|
||||
@@ -1650,7 +1652,7 @@ static int solo1_open(struct inode *inode, struct file *file)
|
||||
s->dma_dac.ossfragshift = s->dma_dac.ossmaxfrags = s->dma_dac.subdivision = 0;
|
||||
s->dma_dac.enabled = 1;
|
||||
s->open_mode |= file->f_mode & (FMODE_READ | FMODE_WRITE);
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
prog_codec(s);
|
||||
return nonseekable_open(inode, file);
|
||||
}
|
||||
@@ -1911,21 +1913,21 @@ static int solo1_midi_open(struct inode *inode, struct file *file)
|
||||
VALIDATE_STATE(s);
|
||||
file->private_data = s;
|
||||
/* wait for device to become free */
|
||||
down(&s->open_sem);
|
||||
mutex_lock(&s->open_mutex);
|
||||
while (s->open_mode & (file->f_mode << FMODE_MIDI_SHIFT)) {
|
||||
if (file->f_flags & O_NONBLOCK) {
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
return -EBUSY;
|
||||
}
|
||||
add_wait_queue(&s->open_wait, &wait);
|
||||
__set_current_state(TASK_INTERRUPTIBLE);
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
schedule();
|
||||
remove_wait_queue(&s->open_wait, &wait);
|
||||
set_current_state(TASK_RUNNING);
|
||||
if (signal_pending(current))
|
||||
return -ERESTARTSYS;
|
||||
down(&s->open_sem);
|
||||
mutex_lock(&s->open_mutex);
|
||||
}
|
||||
spin_lock_irqsave(&s->lock, flags);
|
||||
if (!(s->open_mode & (FMODE_MIDI_READ | FMODE_MIDI_WRITE))) {
|
||||
@@ -1951,7 +1953,7 @@ static int solo1_midi_open(struct inode *inode, struct file *file)
|
||||
}
|
||||
spin_unlock_irqrestore(&s->lock, flags);
|
||||
s->open_mode |= (file->f_mode << FMODE_MIDI_SHIFT) & (FMODE_MIDI_READ | FMODE_MIDI_WRITE);
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
return nonseekable_open(inode, file);
|
||||
}
|
||||
|
||||
@@ -1985,7 +1987,7 @@ static int solo1_midi_release(struct inode *inode, struct file *file)
|
||||
remove_wait_queue(&s->midi.owait, &wait);
|
||||
set_current_state(TASK_RUNNING);
|
||||
}
|
||||
down(&s->open_sem);
|
||||
mutex_lock(&s->open_mutex);
|
||||
s->open_mode &= ~((file->f_mode << FMODE_MIDI_SHIFT) & (FMODE_MIDI_READ|FMODE_MIDI_WRITE));
|
||||
spin_lock_irqsave(&s->lock, flags);
|
||||
if (!(s->open_mode & (FMODE_MIDI_READ | FMODE_MIDI_WRITE))) {
|
||||
@@ -1994,7 +1996,7 @@ static int solo1_midi_release(struct inode *inode, struct file *file)
|
||||
}
|
||||
spin_unlock_irqrestore(&s->lock, flags);
|
||||
wake_up(&s->open_wait);
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
unlock_kernel();
|
||||
return 0;
|
||||
}
|
||||
@@ -2132,24 +2134,24 @@ static int solo1_dmfm_open(struct inode *inode, struct file *file)
|
||||
VALIDATE_STATE(s);
|
||||
file->private_data = s;
|
||||
/* wait for device to become free */
|
||||
down(&s->open_sem);
|
||||
mutex_lock(&s->open_mutex);
|
||||
while (s->open_mode & FMODE_DMFM) {
|
||||
if (file->f_flags & O_NONBLOCK) {
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
return -EBUSY;
|
||||
}
|
||||
add_wait_queue(&s->open_wait, &wait);
|
||||
__set_current_state(TASK_INTERRUPTIBLE);
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
schedule();
|
||||
remove_wait_queue(&s->open_wait, &wait);
|
||||
set_current_state(TASK_RUNNING);
|
||||
if (signal_pending(current))
|
||||
return -ERESTARTSYS;
|
||||
down(&s->open_sem);
|
||||
mutex_lock(&s->open_mutex);
|
||||
}
|
||||
if (!request_region(s->sbbase, FMSYNTH_EXTENT, "ESS Solo1")) {
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
printk(KERN_ERR "solo1: FM synth io ports in use, opl3 loaded?\n");
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -2161,7 +2163,7 @@ static int solo1_dmfm_open(struct inode *inode, struct file *file)
|
||||
outb(5, s->sbbase+2);
|
||||
outb(1, s->sbbase+3); /* enable OPL3 */
|
||||
s->open_mode |= FMODE_DMFM;
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
return nonseekable_open(inode, file);
|
||||
}
|
||||
|
||||
@@ -2172,7 +2174,7 @@ static int solo1_dmfm_release(struct inode *inode, struct file *file)
|
||||
|
||||
VALIDATE_STATE(s);
|
||||
lock_kernel();
|
||||
down(&s->open_sem);
|
||||
mutex_lock(&s->open_mutex);
|
||||
s->open_mode &= ~FMODE_DMFM;
|
||||
for (regb = 0xb0; regb < 0xb9; regb++) {
|
||||
outb(regb, s->sbbase);
|
||||
@@ -2182,7 +2184,7 @@ static int solo1_dmfm_release(struct inode *inode, struct file *file)
|
||||
}
|
||||
release_region(s->sbbase, FMSYNTH_EXTENT);
|
||||
wake_up(&s->open_wait);
|
||||
up(&s->open_sem);
|
||||
mutex_unlock(&s->open_mutex);
|
||||
unlock_kernel();
|
||||
return 0;
|
||||
}
|
||||
@@ -2362,7 +2364,7 @@ static int __devinit solo1_probe(struct pci_dev *pcidev, const struct pci_device
|
||||
init_waitqueue_head(&s->open_wait);
|
||||
init_waitqueue_head(&s->midi.iwait);
|
||||
init_waitqueue_head(&s->midi.owait);
|
||||
init_MUTEX(&s->open_sem);
|
||||
mutex_init(&s->open_mutex);
|
||||
spin_lock_init(&s->lock);
|
||||
s->magic = SOLO1_MAGIC;
|
||||
s->dev = pcidev;
|
||||
|
Verwijs in nieuw issue
Block a user