u32 guilty_entry, int guilty_len, u32 last_plus_one, u32 *start, u32 mss) 
u32 last_plus_one, u32 *start, u32 base_flags, u32 mss) 
static int tigon3_4gb_hwbug_workaround(struct tg3 *tp, struct sk_buff *skb,				       u32 guilty_entry, int guilty_len,				       u32 last_plus_one, u32 *start, u32 mss){	struct sk_buff *new_skb = skb_copy(skb, GFP_ATOMIC);	dma_addr_t new_addr;	u32 entry = *start;	int i;	if (!new_skb) {		dev_kfree_skb(skb);		return -1;	}	/* New SKB is guaranteed to be linear. */	entry = *start;	new_addr = pci_map_single(tp->pdev, new_skb->data, new_skb->len,				  PCI_DMA_TODEVICE);	tg3_set_txd(tp, entry, new_addr, new_skb->len,		    (skb->ip_summed == CHECKSUM_HW) ?		    TXD_FLAG_TCPUDP_CSUM : 0, 1 | (mss << 1));	*start = NEXT_TX(entry);	/* Now clean up the sw ring entries. */	i = 0;	while (entry != last_plus_one) {		int len;		if (i == 0)			len = skb_headlen(skb);		else			len = skb_shinfo(skb)->frags[i-1].size;		pci_unmap_single(tp->pdev,				 pci_unmap_addr(&tp->tx_buffers[entry], mapping),				 len, PCI_DMA_TODEVICE);		if (i == 0) {			tp->tx_buffers[entry].skb = new_skb;			pci_unmap_addr_set(&tp->tx_buffers[entry], mapping, new_addr);		} else {			tp->tx_buffers[entry].skb = NULL;		}		entry = NEXT_TX(entry);		i++;	}	dev_kfree_skb(skb);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/c58ec93245a1fb7354f9e331960380827b9f41db/tg3.c/buggy/drivers/net/tg3.c