struct sonic_local *lp = (struct sonic_local *) dev->priv; printk("%s: transmit timed out.\n", dev->name);  
struct sonic_local *lp = netdev_priv(dev); int i; /* Stop the interrupts for this */ SONIC_WRITE(SONIC_IMR, 0); /* We could resend the original skbs. Easier to re-initialise. */ for (i = 0; i < SONIC_NUM_TDS; i++) { if(lp->tx_laddr[i]) { dma_unmap_single(lp->device, lp->tx_laddr[i], lp->tx_len[i], DMA_TO_DEVICE); lp->tx_laddr[i] = (dma_addr_t)0; } if(lp->tx_skb[i]) { dev_kfree_skb(lp->tx_skb[i]); lp->tx_skb[i] = NULL; } } 
static void sonic_tx_timeout(struct net_device *dev){	struct sonic_local *lp = (struct sonic_local *) dev->priv;	printk("%s: transmit timed out.\n", dev->name);	/* Try to restart the adaptor. */	sonic_init(dev);	lp->stats.tx_errors++;	dev->trans_start = jiffies;	netif_wake_queue(dev);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/efcce839360fb3a7b6dedeacaec80f68b0f2d052/sonic.c/buggy/drivers/net/sonic.c