dev = alloc_etherdev(0); 
dev = alloc_etherdev(sizeof(struct sonic_local)); 
static int __init jazz_sonic_probe(struct device *device){	struct net_device *dev;	struct sonic_local *lp;	unsigned long base_addr;	int err = 0;	int i;	/*	 * Don't probe if we're not running on a Jazz board.	 */	if (mips_machgroup != MACH_GROUP_JAZZ)		return -ENODEV;	dev = alloc_etherdev(0);	if (!dev)		return -ENOMEM;	netdev_boot_setup_check(dev);	base_addr = dev->base_addr;	if (base_addr >= KSEG0)	{ /* Check a single specified location. */		err = sonic_probe1(dev, base_addr, dev->irq);	} else if (base_addr != 0) { /* Don't probe at all. */		err = -ENXIO;	} else {		for (i = 0; sonic_portlist[i].port; i++) {			int io = sonic_portlist[i].port;			if (sonic_probe1(dev, io, sonic_portlist[i].irq) == 0)				break;		}		if (!sonic_portlist[i].port)			err = -ENODEV;	}	if (err)		goto out;	err = register_netdev(dev);	if (err)		goto out1;	return 0;out1:	lp = dev->priv;	vdma_free(lp->rba_laddr);	kfree(lp->rba);	vdma_free(lp->cda_laddr);	kfree(lp);	release_region(dev->base_addr, SONIC_MEM_SIZE);out:	free_netdev(dev);	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/efcce839360fb3a7b6dedeacaec80f68b0f2d052/jazzsonic.c/clean/drivers/net/jazzsonic.c