|
@@ -549,7 +549,10 @@ static int __devinit snd_msnd_attach(struct snd_card *card)
|
|
|
printk(KERN_ERR LOGNAME ": Couldn't grab IRQ %d\n", chip->irq);
|
|
|
return err;
|
|
|
}
|
|
|
- request_region(chip->io, DSP_NUMIO, card->shortname);
|
|
|
+ if (request_region(chip->io, DSP_NUMIO, card->shortname) == NULL) {
|
|
|
+ free_irq(chip->irq, chip);
|
|
|
+ return -EBUSY;
|
|
|
+ }
|
|
|
|
|
|
if (!request_mem_region(chip->base, BUFFSIZE, card->shortname)) {
|
|
|
printk(KERN_ERR LOGNAME
|