pci_unmap_single(hw->pdev, pci_unmap_addr(e, mapaddr), pci_unmap_len(e, maplen), PCI_DMA_FROMDEVICE); dev_kfree_skb(e->skb); e->skb = NULL; } ring->to_clean = e;
if (e->skb) { pci_unmap_single(hw->pdev, pci_unmap_addr(e, mapaddr), pci_unmap_len(e, maplen), PCI_DMA_FROMDEVICE); dev_kfree_skb(e->skb); e->skb = NULL; } } while ((e = e->next) != ring->start);
static void skge_rx_clean(struct skge_port *skge){	struct skge_hw *hw = skge->hw;	struct skge_ring *ring = &skge->rx_ring;	struct skge_element *e;	for (e = ring->to_clean; e != ring->to_use; e = e->next) {		struct skge_rx_desc *rd = e->desc;		rd->control = 0;		pci_unmap_single(hw->pdev,				 pci_unmap_addr(e, mapaddr),				 pci_unmap_len(e, maplen),				 PCI_DMA_FROMDEVICE);		dev_kfree_skb(e->skb);		e->skb = NULL;	}	ring->to_clean = e;}