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); 
/* * Move bulk of work outside of interrupt context */ schedule_work(&rp->tx_timeout_task); 
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);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/6ba98d311d0a4ff7dc36d8f435ce60174f4c30ec/via-rhine.c/clean/drivers/net/via-rhine.c