le16_to_cpu(rx_desc->special) & E1000_RXD_SPC_VLAN_MASK); 
le16_to_cpu(rx_desc->special) & E1000_RXD_SPC_VLAN_MASK); 
e1000_clean_rx_irq(struct e1000_adapter *adapter)#endif{	struct e1000_desc_ring *rx_ring = &adapter->rx_ring;	struct net_device *netdev = adapter->netdev;	struct pci_dev *pdev = adapter->pdev;	struct e1000_rx_desc *rx_desc;	struct e1000_buffer *buffer_info;	struct sk_buff *skb;	unsigned long flags;	uint32_t length;	uint8_t last_byte;	unsigned int i;	boolean_t cleaned = FALSE;	i = rx_ring->next_to_clean;	rx_desc = E1000_RX_DESC(*rx_ring, i);	while(rx_desc->status & E1000_RXD_STAT_DD) {		buffer_info = &rx_ring->buffer_info[i];#ifdef CONFIG_E1000_NAPI		if(*work_done >= work_to_do)			break;		(*work_done)++;#endif		cleaned = TRUE;		pci_unmap_single(pdev,		                 buffer_info->dma,		                 buffer_info->length,		                 PCI_DMA_FROMDEVICE);		skb = buffer_info->skb;		length = le16_to_cpu(rx_desc->length);		if(unlikely(!(rx_desc->status & E1000_RXD_STAT_EOP))) {			/* All receives must fit into a single buffer */			E1000_DBG("%s: Receive packet consumed multiple"					" buffers\n", netdev->name);			dev_kfree_skb_irq(skb);			goto next_desc;		}		if(unlikely(rx_desc->errors & E1000_RXD_ERR_FRAME_ERR_MASK)) {			last_byte = *(skb->data + length - 1);			if(TBI_ACCEPT(&adapter->hw, rx_desc->status,			              rx_desc->errors, length, last_byte)) {				spin_lock_irqsave(&adapter->stats_lock, flags);				e1000_tbi_adjust_stats(&adapter->hw,				                       &adapter->stats,				                       length, skb->data);				spin_unlock_irqrestore(&adapter->stats_lock,				                       flags);				length--;			} else {				dev_kfree_skb_irq(skb);				goto next_desc;			}		}		/* Good Receive */		skb_put(skb, length - ETHERNET_FCS_SIZE);		/* Receive Checksum Offload */		e1000_rx_checksum(adapter, rx_desc, skb);		skb->protocol = eth_type_trans(skb, netdev);#ifdef CONFIG_E1000_NAPI		if(unlikely(adapter->vlgrp &&			    (rx_desc->status & E1000_RXD_STAT_VP))) {			vlan_hwaccel_receive_skb(skb, adapter->vlgrp,					le16_to_cpu(rx_desc->special) &					E1000_RXD_SPC_VLAN_MASK);		} else {			netif_receive_skb(skb);		}#else /* CONFIG_E1000_NAPI */		if(unlikely(adapter->vlgrp &&			    (rx_desc->status & E1000_RXD_STAT_VP))) {			vlan_hwaccel_rx(skb, adapter->vlgrp,					le16_to_cpu(rx_desc->special) &					E1000_RXD_SPC_VLAN_MASK);		} else {			netif_rx(skb);		}#endif /* CONFIG_E1000_NAPI */		netdev->last_rx = jiffies;next_desc:		rx_desc->status = 0;		buffer_info->skb = NULL;		if(unlikely(++i == rx_ring->count)) i = 0;		rx_desc = E1000_RX_DESC(*rx_ring, i);	}	rx_ring->next_to_clean = i;	e1000_alloc_rx_buffers(adapter);	return cleaned;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2d7edb923a823660b081bd4c660300ee19adca8d/e1000_main.c/clean/drivers/net/e1000/e1000_main.c