if ((ret = lan_saa9730_cam_load(lp))) 
if ((ret = lan_saa9730_cam_load(lp))) 
static int lan_saa9730_init(struct net_device *dev, int ioaddr, int irq){	struct lan_saa9730_private *lp;	unsigned char ethernet_addr[6];	int ret = 0;	dev->open = lan_saa9730_open_fail;	if (get_ethernet_addr(ethernet_addr))		return -ENODEV;		memcpy(dev->dev_addr, ethernet_addr, 6);	dev->base_addr = ioaddr;	dev->irq = irq;		/* 	 * Make certain the data structures used by the controller are aligned 	 * and DMAble. 	 */	/*	 *  XXX: that is obviously broken - kfree() won't be happy with us.	 */	lp = (struct lan_saa9730_private *) (((unsigned long)					      kmalloc(sizeof(*lp) + 7,						      GFP_DMA | GFP_KERNEL)					      + 7) & ~7);	if (!lp)		return -ENOMEM;	dev->priv = lp;	memset(lp, 0, sizeof(*lp));	/* Set SAA9730 LAN base address. */	lp->lan_saa9730_regs = (t_lan_saa9730_regmap *) (ioaddr +							 SAA9730_LAN_REGS_ADDR);	/* Set SAA9730 EVM base address. */	lp->evm_saa9730_regs = (t_evm_saa9730_regmap *) (ioaddr +							 SAA9730_EVM_REGS_ADDR);	/* Allocate LAN RX/TX frame buffer space. */	/* FIXME: a leak */	if ((ret = lan_saa9730_allocate_buffers(lp)))		goto out;	/* Stop LAN controller. */	if ((ret = lan_saa9730_stop(lp))) 		goto out;		/* Initialize CAM registers. */	if ((ret = lan_saa9730_cam_init(dev)))		goto out;	/* Initialize MII registers. */	if ((ret = lan_saa9730_mii_init(lp)))		goto out;	/* Initialize control registers. */	if ((ret = lan_saa9730_control_init(lp))) 		goto out;        	/* Load CAM registers. */	if ((ret = lan_saa9730_cam_load(lp))) 		goto out;		/* Initialize DMA context registers. */	if ((ret = lan_saa9730_dma_init(lp)))		goto out;		spin_lock_init(&lp->lock);			dev->open = lan_saa9730_open;	dev->hard_start_xmit = lan_saa9730_start_xmit;	dev->stop = lan_saa9730_close;	dev->get_stats = lan_saa9730_get_stats;	dev->set_multicast_list = lan_saa9730_set_multicast;	dev->tx_timeout = lan_saa9730_tx_timeout;	dev->watchdog_timeo = (HZ >> 1);	dev->dma = 0;		ret = register_netdev(dev);	if (ret)		goto out;	return 0; out:	kfree(dev->priv);	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/62ff0d0a0769f08806d3f50449a78f17420971e8/saa9730.c/buggy/drivers/net/saa9730.c