long ioaddr = dev->base_addr; 
void __iomem *ioaddr = vp->ioaddr; 
vortex_close(struct net_device *dev){	struct vortex_private *vp = netdev_priv(dev);	long ioaddr = dev->base_addr;	int i;	if (netif_device_present(dev))		vortex_down(dev, 1);	if (vortex_debug > 1) {		printk(KERN_DEBUG"%s: vortex_close() status %4.4x, Tx status %2.2x.\n",			   dev->name, inw(ioaddr + EL3_STATUS), inb(ioaddr + TxStatus));		printk(KERN_DEBUG "%s: vortex close stats: rx_nocopy %d rx_copy %d"			   " tx_queued %d Rx pre-checksummed %d.\n",			   dev->name, vp->rx_nocopy, vp->rx_copy, vp->queued_packet, vp->rx_csumhits);	}#if DO_ZEROCOPY	if (	vp->rx_csumhits &&			((vp->drv_flags & HAS_HWCKSM) == 0) &&			(hw_checksums[vp->card_idx] == -1)) {		printk(KERN_WARNING "%s supports hardware checksums, and we're not using them!\n", dev->name);	}#endif			free_irq(dev->irq, dev);	if (vp->full_bus_master_rx) { /* Free Boomerang bus master Rx buffers. */		for (i = 0; i < RX_RING_SIZE; i++)			if (vp->rx_skbuff[i]) {				pci_unmap_single(	VORTEX_PCI(vp), le32_to_cpu(vp->rx_ring[i].addr),									PKT_BUF_SZ, PCI_DMA_FROMDEVICE);				dev_kfree_skb(vp->rx_skbuff[i]);				vp->rx_skbuff[i] = NULL;			}	}	if (vp->full_bus_master_tx) { /* Free Boomerang bus master Tx buffers. */		for (i = 0; i < TX_RING_SIZE; i++) {			if (vp->tx_skbuff[i]) {				struct sk_buff *skb = vp->tx_skbuff[i];#if DO_ZEROCOPY				int k;				for (k=0; k<=skb_shinfo(skb)->nr_frags; k++)						pci_unmap_single(VORTEX_PCI(vp),										 le32_to_cpu(vp->tx_ring[i].frag[k].addr),										 le32_to_cpu(vp->tx_ring[i].frag[k].length)&0xFFF,										 PCI_DMA_TODEVICE);#else				pci_unmap_single(VORTEX_PCI(vp), le32_to_cpu(vp->tx_ring[i].addr), skb->len, PCI_DMA_TODEVICE);#endif				dev_kfree_skb(skb);				vp->tx_skbuff[i] = NULL;			}		}	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/62afe595de7aaac6c140103a34dc8c208afa34e7/3c59x.c/buggy/drivers/net/3c59x.c