 if (bp->flags & B44_FLAG_RX_RING_HACK) b44_sync_dma_desc_for_device(bp->pdev, bp->rx_ring_dma, dest_idx * sizeof(dest_desc), DMA_BIDIRECTIONAL); 
static void b44_recycle_rx(struct b44 *bp, int src_idx, u32 dest_idx_unmasked){	struct dma_desc *src_desc, *dest_desc;	struct ring_info *src_map, *dest_map;	struct rx_header *rh;	int dest_idx;	u32 ctrl;	dest_idx = dest_idx_unmasked & (B44_RX_RING_SIZE - 1);	dest_desc = &bp->rx_ring[dest_idx];	dest_map = &bp->rx_buffers[dest_idx];	src_desc = &bp->rx_ring[src_idx];	src_map = &bp->rx_buffers[src_idx];	dest_map->skb = src_map->skb;	rh = (struct rx_header *) src_map->skb->data;	rh->len = 0;	rh->flags = 0;	pci_unmap_addr_set(dest_map, mapping,			   pci_unmap_addr(src_map, mapping));	ctrl = src_desc->ctrl;	if (dest_idx == (B44_RX_RING_SIZE - 1))		ctrl |= cpu_to_le32(DESC_CTRL_EOT);	else		ctrl &= cpu_to_le32(~DESC_CTRL_EOT);	dest_desc->ctrl = ctrl;	dest_desc->addr = src_desc->addr;	src_map->skb = NULL;	pci_dma_sync_single_for_device(bp->pdev, src_desc->addr,				       RX_PKT_BUF_SZ,				       PCI_DMA_FROMDEVICE);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/9f38c636ababfb41e58c9ec1e9719492ef7f0479/b44.c/buggy/drivers/net/b44.c