priv->iso = hpsb_iso_recv_init(host, (ETHER1394_GASP_BUFFERS * 2 * (1 << (host->csr.max_rec + 1))), 
priv->iso = hpsb_iso_recv_init(host, ETHER1394_ISO_BUF_SIZE, 
static void ether1394_add_host (struct hpsb_host *host){	struct eth1394_host_info *hi = NULL;	struct net_device *dev = NULL;	struct eth1394_priv *priv;	static int version_printed = 0;	u64 fifo_addr;	if (!(host->config_roms & HPSB_CONFIG_ROM_ENTRY_IP1394))		return;	fifo_addr = hpsb_allocate_and_register_addrspace(&eth1394_highlevel,							 host,							 &addr_ops,							 ETHER1394_REGION_ADDR_LEN,							 ETHER1394_REGION_ADDR_LEN,							 -1, -1);	if (fifo_addr == ~0ULL)		goto out;	if (version_printed++ == 0)		ETH1394_PRINT_G (KERN_INFO, "%s\n", version);	/* We should really have our own alloc_hpsbdev() function in	 * net_init.c instead of calling the one for ethernet then hijacking	 * it for ourselves.  That way we'd be a real networking device. */	dev = alloc_etherdev(sizeof (struct eth1394_priv));	if (dev == NULL) {		ETH1394_PRINT_G (KERN_ERR, "Out of memory trying to allocate "				 "etherdevice for IEEE 1394 device %s-%d\n",				 host->driver->name, host->id);		goto out;        }	SET_MODULE_OWNER(dev);	SET_NETDEV_DEV(dev, &host->device);	priv = netdev_priv(dev);	INIT_LIST_HEAD(&priv->ip_node_list);	spin_lock_init(&priv->lock);	priv->host = host;	priv->local_fifo = fifo_addr;	hi = hpsb_create_hostinfo(&eth1394_highlevel, host, sizeof(*hi));	if (hi == NULL) {		ETH1394_PRINT_G (KERN_ERR, "Out of memory trying to create "				 "hostinfo for IEEE 1394 device %s-%d\n",				 host->driver->name, host->id);		goto out;        }	ether1394_init_dev(dev);	if (register_netdev (dev)) {		ETH1394_PRINT (KERN_ERR, dev->name, "Error registering network driver\n");		goto out;	}	ETH1394_PRINT (KERN_INFO, dev->name, "IEEE-1394 IPv4 over 1394 Ethernet (fw-host%d)\n",		       host->id);	hi->host = host;	hi->dev = dev;	/* Ignore validity in hopes that it will be set in the future.  It'll	 * be checked when the eth device is opened. */	priv->broadcast_channel = host->csr.broadcast_channel & 0x3f;	priv->iso = hpsb_iso_recv_init(host, (ETHER1394_GASP_BUFFERS * 2 *					      (1 << (host->csr.max_rec + 1))),				       ETHER1394_GASP_BUFFERS,				       priv->broadcast_channel,				       HPSB_ISO_DMA_PACKET_PER_BUFFER,				       1, ether1394_iso);	if (priv->iso == NULL) {		ETH1394_PRINT(KERN_ERR, dev->name,			      "Could not allocate isochronous receive context "			      "for the broadcast channel\n");		priv->bc_state = ETHER1394_BC_ERROR;	} else {		if (hpsb_iso_recv_start(priv->iso, -1, (1 << 3), -1) < 0)			priv->bc_state = ETHER1394_BC_STOPPED;		else			priv->bc_state = ETHER1394_BC_RUNNING;	}	return;out:	if (dev != NULL)		free_netdev(dev);	if (hi)		hpsb_destroy_hostinfo(&eth1394_highlevel, host);	return;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3ae3d0d4ae4131563d9eb55859f4fa5bd39059bd/eth1394.c/buggy/drivers/ieee1394/eth1394.c