ifield[1] = skb->private.ifield; 
ifield[1] = hcb->ifield; 
static int rr_start_xmit(struct sk_buff *skb, struct net_device *dev){	struct rr_private *rrpriv = netdev_priv(dev);	struct rr_regs __iomem *regs = rrpriv->regs;	struct ring_ctrl *txctrl;	unsigned long flags;	u32 index, len = skb->len;	u32 *ifield;	struct sk_buff *new_skb;	if (readl(&regs->Mode) & FATAL_ERR)		printk("error codes Fail1 %02x, Fail2 %02x\n",		       readl(&regs->Fail1), readl(&regs->Fail2));	/*	 * We probably need to deal with tbusy here to prevent overruns.	 */	if (skb_headroom(skb) < 8){		printk("incoming skb too small - reallocating\n");		if (!(new_skb = dev_alloc_skb(len + 8))) {			dev_kfree_skb(skb);			netif_wake_queue(dev);			return -EBUSY;		}		skb_reserve(new_skb, 8);		skb_put(new_skb, len);		memcpy(new_skb->data, skb->data, len);		dev_kfree_skb(skb);		skb = new_skb;	}	ifield = (u32 *)skb_push(skb, 8);	ifield[0] = 0;	ifield[1] = skb->private.ifield;	/*	 * We don't need the lock before we are actually going to start	 * fiddling with the control blocks.	 */	spin_lock_irqsave(&rrpriv->lock, flags);	txctrl = &rrpriv->info->tx_ctrl;	index = txctrl->pi;	rrpriv->tx_skbuff[index] = skb;	set_rraddr(&rrpriv->tx_ring[index].addr, pci_map_single(		rrpriv->pci_dev, skb->data, len + 8, PCI_DMA_TODEVICE));	rrpriv->tx_ring[index].size = len + 8; /* include IFIELD */	rrpriv->tx_ring[index].mode = PACKET_START | PACKET_END;	txctrl->pi = (index + 1) % TX_RING_ENTRIES;	wmb();	writel(txctrl->pi, &regs->TxPi);	if (txctrl->pi == rrpriv->dirty_tx){		rrpriv->tx_full = 1;		netif_stop_queue(dev);	}	spin_unlock_irqrestore(&rrpriv->lock, flags);	dev->trans_start = jiffies;	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/6f1cf16582160c4839f05007c978743911aa022b/rrunner.c/buggy/drivers/net/rrunner.c