for(e = ring->to_clean; e != ring->to_use; e = e->next) { 
for (e = ring->to_clean; e != ring->to_use; e = e->next) { 
static inline void skge_tx_intr(struct net_device *dev){	struct skge_port *skge = netdev_priv(dev);	struct skge_hw *hw = skge->hw;	struct skge_ring *ring = &skge->tx_ring;	struct skge_element *e;	spin_lock(&skge->tx_lock);	for(e = ring->to_clean; e != ring->to_use; e = e->next) {		struct skge_tx_desc *td = e->desc;		u32 control;		rmb();		control = td->control;		if (control & BMU_OWN)			break;		if (unlikely(netif_msg_tx_done(skge)))			printk(KERN_DEBUG PFX "%s: tx done slot %td status 0x%x\n",			       dev->name, e - ring->start, td->status);		skge_tx_free(hw, e);		e->skb = NULL;		++skge->tx_avail;	}	ring->to_clean = e;	skge_write8(hw, Q_ADDR(txqaddr[skge->port], Q_CSR), CSR_IRQ_CL_F);	if (skge->tx_avail > MAX_SKB_FRAGS + 1)		netif_wake_queue(dev);	spin_unlock(&skge->tx_lock);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/955660652af35524974cf4623c02bc99a3785949/skge.c/buggy/drivers/net/skge.c