lp->pending_tx_skb = NULL; 
static int smc_hard_start_xmit(struct sk_buff *skb, struct net_device *dev){	struct smc_local *lp = netdev_priv(dev);	void __iomem *ioaddr = lp->base;	unsigned int numPages, poll_count, status;	DBG(3, "%s: %s\n", dev->name, __FUNCTION__);	BUG_ON(lp->pending_tx_skb != NULL);	lp->pending_tx_skb = skb;	/*	 * The MMU wants the number of pages to be the number of 256 bytes	 * 'pages', minus 1 (since a packet can't ever have 0 pages :))	 *	 * The 91C111 ignores the size bits, but earlier models don't.	 *	 * Pkt size for allocating is data length +6 (for additional status	 * words, length and ctl)	 *	 * If odd size then last byte is included in ctl word.	 */	numPages = ((skb->len & ~1) + (6 - 1)) >> 8;	if (unlikely(numPages > 7)) {		printk("%s: Far too big packet error.\n", dev->name);		lp->pending_tx_skb = NULL;		lp->stats.tx_errors++;		lp->stats.tx_dropped++;		dev_kfree_skb(skb);		return 0;	}	smc_special_lock(&lp->lock);	/* now, try to allocate the memory */	SMC_SET_MMU_CMD(MC_ALLOC | numPages);	/*	 * Poll the chip for a short amount of time in case the	 * allocation succeeds quickly.	 */	poll_count = MEMORY_WAIT_TIME;	do {		status = SMC_GET_INT();		if (status & IM_ALLOC_INT) {			SMC_ACK_INT(IM_ALLOC_INT);  			break;		}   	} while (--poll_count);	smc_special_unlock(&lp->lock);   	if (!poll_count) {		/* oh well, wait until the chip finds memory later */		netif_stop_queue(dev);		DBG(2, "%s: TX memory allocation deferred.\n", dev->name);		SMC_ENABLE_INT(IM_ALLOC_INT);   	} else {		/*		 * Allocation succeeded: push packet to the chip's own memory		 * immediately.		 */  		smc_hardware_send_pkt((unsigned long)dev);	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/be83668a253149d99085ca4afe6cd8dc8a43fcd0/smc91x.c/buggy/drivers/net/smc91x.c