new_bus = kmalloc(sizeof(struct mii_bus), GFP_KERNEL); 
new_bus = kzalloc(sizeof(struct mii_bus), GFP_KERNEL); 
int gfar_mdio_probe(struct device *dev){	struct platform_device *pdev = to_platform_device(dev);	struct gianfar_mdio_data *pdata;	struct gfar_mii *regs;	struct mii_bus *new_bus;	int err = 0;	if (NULL == dev)		return -EINVAL;	new_bus = kmalloc(sizeof(struct mii_bus), GFP_KERNEL);	if (NULL == new_bus)		return -ENOMEM;	new_bus->name = "Gianfar MII Bus",	new_bus->read = &gfar_mdio_read,	new_bus->write = &gfar_mdio_write,	new_bus->reset = &gfar_mdio_reset,	new_bus->id = pdev->id;	pdata = (struct gianfar_mdio_data *)pdev->dev.platform_data;	if (NULL == pdata) {		printk(KERN_ERR "gfar mdio %d: Missing platform data!\n", pdev->id);		return -ENODEV;	}	/* Set the PHY base address */	regs = (struct gfar_mii *) ioremap(pdata->paddr, 			sizeof (struct gfar_mii));	if (NULL == regs) {		err = -ENOMEM;		goto reg_map_fail;	}	new_bus->priv = regs;	new_bus->irq = pdata->irq;	new_bus->dev = dev;	dev_set_drvdata(dev, new_bus);	err = mdiobus_register(new_bus);	if (0 != err) {		printk (KERN_ERR "%s: Cannot register as MDIO bus\n", 				new_bus->name);		goto bus_register_fail;	}	return 0;bus_register_fail:	iounmap((void *) regs);reg_map_fail:	kfree(new_bus);	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/125d128bec1bbf81be4c198243334a6153c0b023/gianfar_mii.c/clean/drivers/net/gianfar_mii.c