/* EISA bus I/O device probe. Probe from slot 1 since slot 0 is usually the motherboard.  */
static int __init eisa_probe(struct net_device *dev, u_long iobase)
/* EISA bus I/O device probe. Probe from slot 1 since slot 0 is usually the motherboard.  */
static int __init eisa_probe(struct net_device *dev, u_long iobase)
{
	int i, maxSlots;
	u_long iobase;
	int ret = -ENODEV;
	if (ioaddr < 0x1000)
		goto out;
	iobase = ioaddr;
	i = (ioaddr >> 12);
	maxSlots = i + 1;
	for (i = 1; (i < maxSlots) && (dev != NULL); i++, iobase += EISA_SLOT_INC) {
		if (EISA_signature(name, EISA_ID) == 0) {
			if (request_region(iobase, EWRK3_TOTAL_SIZE, DRV_NAME) &&
			    DevicePresent(iobase) == 0) {
				int irq = dev->irq;
				ret = ewrk3_hw_init(dev, iobase);
				if (!ret)
					break;
				dev->irq = irq;
			}
			release_region(iobase, EWRK3_TOTAL_SIZE);
		}
	}
 out:
	return ret;
}