return -ENODEV;
}
/* Reserve the I/O region - guaranteed to work by check_region */
- request_region(dev->base_addr, ARCNET_TOTAL_SIZE, "arcnet (COM90xx-IO)");
+ if (!request_region(dev->base_addr, ARCNET_TOTAL_SIZE, "arcnet (COM90xx-IO)")) {
+ free_irq(dev->irq, dev);
+ return -EBUSY;
+ }
/* Initialize the rest of the device structure. */
dev->priv = kmalloc(sizeof(struct arcnet_local), GFP_KERNEL);
/*
* Ok set it up.
*/
-
+ if (!request_region(ioaddr[0], 16, dev->name))
+ continue;
+ if (!request_region(ioaddr[1], 16, dev->name)) {
+ release_region(ioaddr[0], 16);
+ continue;
+ }
dev->base_addr = ioaddr[0];
/* rmem_end holds the second I/O address - fv */
/* Lock resources */
- request_region(ioaddr[0], 16, dev->name);
- request_region(ioaddr[1], 16, dev->name);
-
return 0;
}
}
/* rmem_end holds the second I/O address - fv */
ioaddr[1] = dev->rmem_end;
name = dev->name;
- request_region(ioaddr[0], SB1000_IO_EXTENT, "sb1000");
- request_region(ioaddr[1], SB1000_IO_EXTENT, "sb1000");
/* initialize sb1000 */
if ((status = sb1000_reset(ioaddr, name)))