long ioaddr = dev->base_addr; 
void __iomem *ioaddr = vp->ioaddr; 
static void vortex_tx_timeout(struct net_device *dev){	struct vortex_private *vp = netdev_priv(dev);	long ioaddr = dev->base_addr;	printk(KERN_ERR "%s: transmit timed out, tx_status %2.2x status %4.4x.\n",		   dev->name, inb(ioaddr + TxStatus),		   inw(ioaddr + EL3_STATUS));	EL3WINDOW(4);	printk(KERN_ERR "  diagnostics: net %04x media %04x dma %08x fifo %04x\n",			inw(ioaddr + Wn4_NetDiag),			inw(ioaddr + Wn4_Media),			inl(ioaddr + PktStatus),			inw(ioaddr + Wn4_FIFODiag));	/* Slight code bloat to be user friendly. */	if ((inb(ioaddr + TxStatus) & 0x88) == 0x88)		printk(KERN_ERR "%s: Transmitter encountered 16 collisions --"			   " network cable problem?\n", dev->name);	if (inw(ioaddr + EL3_STATUS) & IntLatch) {		printk(KERN_ERR "%s: Interrupt posted but not delivered --"			   " IRQ blocked by another device?\n", dev->name);		/* Bad idea here.. but we might as well handle a few events. */		{			/*			 * Block interrupts because vortex_interrupt does a bare spin_lock()			 */			unsigned long flags;			local_irq_save(flags);			if (vp->full_bus_master_tx)				boomerang_interrupt(dev->irq, dev, NULL);			else				vortex_interrupt(dev->irq, dev, NULL);			local_irq_restore(flags);		}	}	if (vortex_debug > 0)		dump_tx_ring(dev);	issue_and_wait(dev, TxReset);	vp->stats.tx_errors++;	if (vp->full_bus_master_tx) {		printk(KERN_DEBUG "%s: Resetting the Tx ring pointer.\n", dev->name);		if (vp->cur_tx - vp->dirty_tx > 0  &&  inl(ioaddr + DownListPtr) == 0)			outl(vp->tx_ring_dma + (vp->dirty_tx % TX_RING_SIZE) * sizeof(struct boom_tx_desc),				 ioaddr + DownListPtr);		if (vp->cur_tx - vp->dirty_tx < TX_RING_SIZE)			netif_wake_queue (dev);		if (vp->drv_flags & IS_BOOMERANG)			outb(PKT_BUF_SZ>>8, ioaddr + TxFreeThreshold);		outw(DownUnstall, ioaddr + EL3_CMD);	} else {		vp->stats.tx_dropped++;		netif_wake_queue(dev);	}		/* Issue Tx Enable */	outw(TxEnable, ioaddr + EL3_CMD);	dev->trans_start = jiffies;		/* Switch to register set 7 for normal use. */	EL3WINDOW(7);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/62afe595de7aaac6c140103a34dc8c208afa34e7/3c59x.c/buggy/drivers/net/3c59x.c