diff options
Diffstat (limited to 'sound/oss/ymfpci.c')
| -rw-r--r-- | sound/oss/ymfpci.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sound/oss/ymfpci.c b/sound/oss/ymfpci.c index f8bd72e46f57..bf90c124a7e6 100644 --- a/sound/oss/ymfpci.c +++ b/sound/oss/ymfpci.c | |||
| @@ -1918,10 +1918,10 @@ static int ymf_open(struct inode *inode, struct file *file) | |||
| 1918 | if (unit == NULL) | 1918 | if (unit == NULL) |
| 1919 | return -ENODEV; | 1919 | return -ENODEV; |
| 1920 | 1920 | ||
| 1921 | down(&unit->open_sem); | 1921 | mutex_lock(&unit->open_mutex); |
| 1922 | 1922 | ||
| 1923 | if ((state = ymf_state_alloc(unit)) == NULL) { | 1923 | if ((state = ymf_state_alloc(unit)) == NULL) { |
| 1924 | up(&unit->open_sem); | 1924 | mutex_unlock(&unit->open_mutex); |
| 1925 | return -ENOMEM; | 1925 | return -ENOMEM; |
| 1926 | } | 1926 | } |
| 1927 | list_add_tail(&state->chain, &unit->states); | 1927 | list_add_tail(&state->chain, &unit->states); |
| @@ -1956,7 +1956,7 @@ static int ymf_open(struct inode *inode, struct file *file) | |||
| 1956 | ymfpci_writeb(unit, YDSXGR_TIMERCTRL, | 1956 | ymfpci_writeb(unit, YDSXGR_TIMERCTRL, |
| 1957 | (YDSXGR_TIMERCTRL_TEN|YDSXGR_TIMERCTRL_TIEN)); | 1957 | (YDSXGR_TIMERCTRL_TEN|YDSXGR_TIMERCTRL_TIEN)); |
| 1958 | #endif | 1958 | #endif |
| 1959 | up(&unit->open_sem); | 1959 | mutex_unlock(&unit->open_mutex); |
| 1960 | 1960 | ||
| 1961 | return nonseekable_open(inode, file); | 1961 | return nonseekable_open(inode, file); |
| 1962 | 1962 | ||
| @@ -1974,7 +1974,7 @@ out_nodma: | |||
| 1974 | list_del(&state->chain); | 1974 | list_del(&state->chain); |
| 1975 | kfree(state); | 1975 | kfree(state); |
| 1976 | 1976 | ||
| 1977 | up(&unit->open_sem); | 1977 | mutex_unlock(&unit->open_mutex); |
| 1978 | return err; | 1978 | return err; |
| 1979 | } | 1979 | } |
| 1980 | 1980 | ||
| @@ -1987,7 +1987,7 @@ static int ymf_release(struct inode *inode, struct file *file) | |||
| 1987 | ymfpci_writeb(unit, YDSXGR_TIMERCTRL, 0); | 1987 | ymfpci_writeb(unit, YDSXGR_TIMERCTRL, 0); |
| 1988 | #endif | 1988 | #endif |
| 1989 | 1989 | ||
| 1990 | down(&unit->open_sem); | 1990 | mutex_lock(&unit->open_mutex); |
| 1991 | 1991 | ||
| 1992 | /* | 1992 | /* |
| 1993 | * XXX Solve the case of O_NONBLOCK close - don't deallocate here. | 1993 | * XXX Solve the case of O_NONBLOCK close - don't deallocate here. |
| @@ -2004,7 +2004,7 @@ static int ymf_release(struct inode *inode, struct file *file) | |||
| 2004 | file->private_data = NULL; /* Can you tell I programmed Solaris */ | 2004 | file->private_data = NULL; /* Can you tell I programmed Solaris */ |
| 2005 | kfree(state); | 2005 | kfree(state); |
| 2006 | 2006 | ||
| 2007 | up(&unit->open_sem); | 2007 | mutex_unlock(&unit->open_mutex); |
| 2008 | 2008 | ||
| 2009 | return 0; | 2009 | return 0; |
| 2010 | } | 2010 | } |
| @@ -2532,7 +2532,7 @@ static int __devinit ymf_probe_one(struct pci_dev *pcidev, const struct pci_devi | |||
| 2532 | spin_lock_init(&codec->reg_lock); | 2532 | spin_lock_init(&codec->reg_lock); |
| 2533 | spin_lock_init(&codec->voice_lock); | 2533 | spin_lock_init(&codec->voice_lock); |
| 2534 | spin_lock_init(&codec->ac97_lock); | 2534 | spin_lock_init(&codec->ac97_lock); |
| 2535 | init_MUTEX(&codec->open_sem); | 2535 | mutex_init(&codec->open_mutex); |
| 2536 | INIT_LIST_HEAD(&codec->states); | 2536 | INIT_LIST_HEAD(&codec->states); |
| 2537 | codec->pci = pcidev; | 2537 | codec->pci = pcidev; |
| 2538 | 2538 | ||
