unsigned int len) 
u32 control, u32 status, u16 csum) 
static inline struct sk_buff *skge_rx_get(struct skge_port *skge,					  struct skge_element *e,					  unsigned int len){	struct sk_buff *nskb, *skb;	if (len < RX_COPY_THRESHOLD) {		nskb = skge_rx_alloc(skge->netdev, len + NET_IP_ALIGN);		if (unlikely(!nskb))			return NULL;		pci_dma_sync_single_for_cpu(skge->hw->pdev,					    pci_unmap_addr(e, mapaddr),					    len, PCI_DMA_FROMDEVICE);		memcpy(nskb->data, e->skb->data, len);		pci_dma_sync_single_for_device(skge->hw->pdev,					       pci_unmap_addr(e, mapaddr),					       len, PCI_DMA_FROMDEVICE);		if (skge->rx_csum) {			struct skge_rx_desc *rd = e->desc;			nskb->csum = le16_to_cpu(rd->csum2);			nskb->ip_summed = CHECKSUM_HW;		}		skge_rx_reuse(e, skge->rx_buf_size);		return nskb;	} else {		nskb = skge_rx_alloc(skge->netdev, skge->rx_buf_size);		if (unlikely(!nskb))			return NULL;		pci_unmap_single(skge->hw->pdev,				 pci_unmap_addr(e, mapaddr),				 pci_unmap_len(e, maplen),				 PCI_DMA_FROMDEVICE);		skb = e->skb;		if (skge->rx_csum) {			struct skge_rx_desc *rd = e->desc;			skb->csum = le16_to_cpu(rd->csum2);			skb->ip_summed = CHECKSUM_HW;		}		skge_rx_setup(skge, e, nskb, skge->rx_buf_size);		return skb;	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/383181ac7e59542ff47e2b81f7e4c40aba39b30b/skge.c/buggy/drivers/net/skge.c