np->rx_ring[nr].PacketBuffer = cpu_to_le32(np->rx_dma[nr]); wmb(); np->rx_ring[nr].FlagLen = cpu_to_le32(np->rx_buf_sz | NV_RX_AVAIL); 
if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { np->rx_ring.orig[nr].PacketBuffer = cpu_to_le32(np->rx_dma[nr]); wmb(); np->rx_ring.orig[nr].FlagLen = cpu_to_le32(np->rx_buf_sz | NV_RX_AVAIL); } else { np->rx_ring.ex[nr].PacketBufferHigh = cpu_to_le64(np->rx_dma[nr]) >> 32; np->rx_ring.ex[nr].PacketBufferLow = cpu_to_le64(np->rx_dma[nr]) & 0x0FFFFFFFF; wmb(); np->rx_ring.ex[nr].FlagLen = cpu_to_le32(np->rx_buf_sz | NV_RX2_AVAIL); } 
static int nv_alloc_rx(struct net_device *dev){	struct fe_priv *np = get_nvpriv(dev);	unsigned int refill_rx = np->refill_rx;	int nr;	while (np->cur_rx != refill_rx) {		struct sk_buff *skb;		nr = refill_rx % RX_RING;		if (np->rx_skbuff[nr] == NULL) {			skb = dev_alloc_skb(np->rx_buf_sz + NV_RX_ALLOC_PAD);			if (!skb)				break;			skb->dev = dev;			np->rx_skbuff[nr] = skb;		} else {			skb = np->rx_skbuff[nr];		}		np->rx_dma[nr] = pci_map_single(np->pci_dev, skb->data, skb->len,						PCI_DMA_FROMDEVICE);		np->rx_ring[nr].PacketBuffer = cpu_to_le32(np->rx_dma[nr]);		wmb();		np->rx_ring[nr].FlagLen = cpu_to_le32(np->rx_buf_sz | NV_RX_AVAIL);		dprintk(KERN_DEBUG "%s: nv_alloc_rx: Packet %d marked as Available\n",					dev->name, refill_rx);		refill_rx++;	}	np->refill_rx = refill_rx;	if (np->cur_rx - refill_rx == RX_RING)		return 1;	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ee73362cdd7d9b8166424f5f9e3176c629ac5cb2/forcedeth.c/clean/drivers/net/forcedeth.c