bp->last_status_idx = bp->status_blk->status_idx;  rmb(); 
bnx2_poll(struct net_device *dev, int *budget){	struct bnx2 *bp = dev->priv;	int rx_done = 1;	bp->last_status_idx = bp->status_blk->status_idx;	rmb();	if ((bp->status_blk->status_attn_bits &		STATUS_ATTN_BITS_LINK_STATE) !=		(bp->status_blk->status_attn_bits_ack &		STATUS_ATTN_BITS_LINK_STATE)) {		spin_lock(&bp->phy_lock);		bnx2_phy_int(bp);		spin_unlock(&bp->phy_lock);	}	if (bp->status_blk->status_tx_quick_consumer_index0 != bp->tx_cons) {		bnx2_tx_int(bp);	}	if (bp->status_blk->status_rx_quick_consumer_index0 != bp->rx_cons) {		int orig_budget = *budget;		int work_done;		if (orig_budget > dev->quota)			orig_budget = dev->quota;				work_done = bnx2_rx_int(bp, orig_budget);		*budget -= work_done;		dev->quota -= work_done;				if (work_done >= orig_budget) {			rx_done = 0;		}	}		if (rx_done) {		netif_rx_complete(dev);		REG_WR(bp, BNX2_PCICFG_INT_ACK_CMD,			BNX2_PCICFG_INT_ACK_CMD_INDEX_VALID |			bp->last_status_idx);		return 0;	}	return 1;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f4e418f7f3286f854883f9f7e3bbf7005340d2de/bnx2.c/buggy/drivers/net/bnx2.c