lp->stats.tx_bytes += skb->len; 
static int net_send_packet(struct sk_buff *skb, struct net_device *dev){	struct net_local *lp = netdev_priv(dev);	if (net_debug > 3) {		printk("%s: sent %d byte packet of type %x\n",			dev->name, skb->len,			(skb->data[ETH_ALEN+ETH_ALEN] << 8) | skb->data[ETH_ALEN+ETH_ALEN+1]);	}	/* keep the upload from being interrupted, since we                  ask the chip to start transmitting before the                  whole packet has been completely uploaded. */	spin_lock_irq(&lp->lock);	netif_stop_queue(dev);	/* initiate a transmit sequence */	writeword(dev, TX_CMD_PORT, lp->send_cmd);	writeword(dev, TX_LEN_PORT, skb->len);	/* Test to see if the chip has allocated memory for the packet */	if ((readreg(dev, PP_BusST) & READY_FOR_TX_NOW) == 0) {		/*		 * Gasp!  It hasn't.  But that shouldn't happen since		 * we're waiting for TxOk, so return 1 and requeue this packet.		 */				spin_unlock_irq(&lp->lock);		if (net_debug) printk("cs89x0: Tx buffer not free!\n");		return 1;	}	/* Write the contents of the packet */	outsw(dev->base_addr + TX_FRAME_PORT,skb->data,(skb->len+1) >>1);	spin_unlock_irq(&lp->lock);	dev->trans_start = jiffies;	dev_kfree_skb (skb);	/*	 * We DO NOT call netif_wake_queue() here.	 * We also DO NOT call netif_start_queue().	 *	 * Either of these would cause another bottom half run through	 * net_send_packet() before this packet has fully gone out.  That causes	 * us to hit the "Gasp!" above and the send is rescheduled.  it runs like	 * a dog.  We just return and wait for the Tx completion interrupt handler	 * to restart the netdevice layer	 */	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/e1699f508ab5098de4b258268fa8913db38d9d35/cs89x0.c/buggy/drivers/net/cs89x0.c