void __iomem *ioaddr = rp->base;
static void rhine_tx_timeout(struct net_device *dev){	struct rhine_private *rp = netdev_priv(dev);	void __iomem *ioaddr = rp->base;	printk(KERN_WARNING "%s: Transmit timed out, status %4.4x, PHY status "	       "%4.4x, resetting...\n",	       dev->name, ioread16(ioaddr + IntrStatus),	       mdio_read(dev, rp->mii_if.phy_id, MII_BMSR));	/* protect against concurrent rx interrupts */	disable_irq(rp->pdev->irq);	spin_lock(&rp->lock);	/* clear all descriptors */	free_tbufs(dev);	free_rbufs(dev);	alloc_tbufs(dev);	alloc_rbufs(dev);	/* Reinitialize the hardware. */	rhine_chip_reset(dev);	init_registers(dev);	spin_unlock(&rp->lock);	enable_irq(rp->pdev->irq);	dev->trans_start = jiffies;	rp->stats.tx_errors++;	netif_wake_queue(dev);}