printk(version); 
printk("ne3210 loaded.\n"); 
static int __init ne3210_eisa_probe (struct device *device){	unsigned long ioaddr, phys_mem;	int i, retval, port_index;	struct eisa_device *edev = to_eisa_device (device);	struct net_device *dev;	/* Allocate dev->priv and fill in 8390 specific dev fields. */	if (!(dev = alloc_ei_netdev ())) {		printk ("ne3210.c: unable to allocate memory for dev!\n");		return -ENOMEM;	}	SET_MODULE_OWNER(dev);	SET_NETDEV_DEV(dev, device);	device->driver_data = dev;	ioaddr = edev->base_addr;	if (!request_region(ioaddr, NE3210_IO_EXTENT, DRV_NAME)) {		retval = -EBUSY;		goto out;	}	if (!request_region(ioaddr + NE3210_CFG1,			    NE3210_CFG_EXTENT, DRV_NAME)) {		retval = -EBUSY;		goto out1;	}#if NE3210_DEBUG & NE3210_D_PROBE	printk("ne3210-debug: probe at %#x, ID %s\n", ioaddr, edev->id.sig);	printk("ne3210-debug: config regs: %#x %#x\n",		inb(ioaddr + NE3210_CFG1), inb(ioaddr + NE3210_CFG2));#endif	port_index = inb(ioaddr + NE3210_CFG2) >> 6;	printk("ne3210.c: NE3210 in EISA slot %d, media: %s, addr:",		edev->slot, ifmap[port_index]);	for(i = 0; i < ETHER_ADDR_LEN; i++)		printk(" %02x", (dev->dev_addr[i] = inb(ioaddr + NE3210_SA_PROM + i)));		/* Snarf the interrupt now. CFG file has them all listed as `edge' with share=NO */	dev->irq = irq_map[(inb(ioaddr + NE3210_CFG2) >> 3) & 0x07];	printk(".\nne3210.c: using IRQ %d, ", dev->irq);	retval = request_irq(dev->irq, ei_interrupt, 0, DRV_NAME, dev);	if (retval) {		printk (" unable to get IRQ %d.\n", dev->irq);		goto out2;	}	phys_mem = shmem_map[inb(ioaddr + NE3210_CFG2) & 0x07] * 0x1000;	/*	   BEWARE!! Some dain-bramaged EISA SCUs will allow you to put	   the card mem within the region covered by `normal' RAM  !!!	*/	if (phys_mem > 1024*1024) {	/* phys addr > 1MB */		if (phys_mem < virt_to_phys(high_memory)) {			printk(KERN_CRIT "ne3210.c: Card RAM overlaps with normal memory!!!\n");			printk(KERN_CRIT "ne3210.c: Use EISA SCU to set card memory below 1MB,\n");			printk(KERN_CRIT "ne3210.c: or to an address above 0x%lx.\n", virt_to_phys(high_memory));			printk(KERN_CRIT "ne3210.c: Driver NOT installed.\n");			retval = -EINVAL;			goto out3;		}	}		if (!request_mem_region (phys_mem, NE3210_STOP_PG*0x100, DRV_NAME)) {		printk ("ne3210.c: Unable to request shared memory at physical address %#lx\n",			phys_mem);		goto out3;	}		printk("%dkB memory at physical address %#lx\n",	       NE3210_STOP_PG/4, phys_mem);	ei_status.mem = ioremap(phys_mem, NE3210_STOP_PG*0x100);	if (!ei_status.mem) {		printk(KERN_ERR "ne3210.c: Unable to remap card memory !!\n");		printk(KERN_ERR "ne3210.c: Driver NOT installed.\n");		retval = -EAGAIN;		goto out4;	}	printk("ne3210.c: remapped %dkB card memory to virtual address %p\n",	       NE3210_STOP_PG/4, ei_status.mem);	dev->mem_start = (unsigned long)ei_status.mem;	dev->mem_end = dev->mem_start + (NE3210_STOP_PG - NE3210_START_PG)*256;	/* The 8390 offset is zero for the NE3210 */	dev->base_addr = ioaddr;	ei_status.name = "NE3210";	ei_status.tx_start_page = NE3210_START_PG;	ei_status.rx_start_page = NE3210_START_PG + TX_PAGES;	ei_status.stop_page = NE3210_STOP_PG;	ei_status.word16 = 1;	ei_status.priv = phys_mem;	if (ei_debug > 0)		printk(version);	ei_status.reset_8390 = &ne3210_reset_8390;	ei_status.block_input = &ne3210_block_input;	ei_status.block_output = &ne3210_block_output;	ei_status.get_8390_hdr = &ne3210_get_8390_hdr;	dev->open = &ne3210_open;	dev->stop = &ne3210_close;#ifdef CONFIG_NET_POLL_CONTROLLER	dev->poll_controller = ei_poll;#endif	dev->if_port = ifmap_val[port_index];	if ((retval = register_netdev (dev)))		goto out5;			NS8390_init(dev, 0);	return 0; out5:	iounmap(ei_status.mem); out4:	release_mem_region (phys_mem, NE3210_STOP_PG*0x100); out3:	free_irq (dev->irq, dev); out2:	release_region (ioaddr + NE3210_CFG1, NE3210_CFG_EXTENT); out1:	release_region (ioaddr, NE3210_IO_EXTENT); out:	free_netdev (dev);		return retval;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/9d8cc1b6c3cba2be61c0884e3a04dd6baea70654/ne3210.c/buggy/drivers/net/ne3210.c