diff options
Diffstat (limited to 'sound/pci/mixart/mixart.c')
| -rw-r--r-- | sound/pci/mixart/mixart.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/sound/pci/mixart/mixart.c b/sound/pci/mixart/mixart.c index f23a73577c2..c1eb84a14c4 100644 --- a/sound/pci/mixart/mixart.c +++ b/sound/pci/mixart/mixart.c @@ -607,6 +607,7 @@ static int snd_mixart_hw_params(struct snd_pcm_substream *subs,  	/* set the format to the board */  	err = mixart_set_format(stream, format);  	if(err < 0) { +		mutex_unlock(&mgr->setup_mutex);  		return err;  	} @@ -1365,12 +1366,12 @@ static int __devinit snd_mixart_probe(struct pci_dev *pci,  		else  			idx = index[dev] + i;  		snprintf(tmpid, sizeof(tmpid), "%s-%d", id[dev] ? id[dev] : "MIXART", i); -		card = snd_card_new(idx, tmpid, THIS_MODULE, 0); +		err = snd_card_create(idx, tmpid, THIS_MODULE, 0, &card); -		if (! card) { +		if (err < 0) {  			snd_printk(KERN_ERR "cannot allocate the card %d\n", i);  			snd_mixart_free(mgr); -			return -ENOMEM; +			return err;  		}  		strcpy(card->driver, CARD_NAME);  |