|
@@ -1400,9 +1400,13 @@ static int __init attach_multisound(void)
|
|
|
printk(KERN_ERR LOGNAME ": Couldn't grab IRQ %d\n", dev.irq);
|
|
|
return err;
|
|
|
}
|
|
|
- request_region(dev.io, dev.numio, dev.name);
|
|
|
+ if (request_region(dev.io, dev.numio, dev.name) == NULL) {
|
|
|
+ free_irq(dev.irq, &dev);
|
|
|
+ return -EBUSY;
|
|
|
+ }
|
|
|
|
|
|
- if ((err = dsp_full_reset()) < 0) {
|
|
|
+ err = dsp_full_reset();
|
|
|
+ if (err < 0) {
|
|
|
release_region(dev.io, dev.numio);
|
|
|
free_irq(dev.irq, &dev);
|
|
|
return err;
|