ibmveth_schedule_replenishing(adapter); 
ibmveth_replenish_task(adapter); 
static int ibmveth_poll(struct net_device *netdev, int *budget){	struct ibmveth_adapter *adapter = netdev->priv;	int max_frames_to_process = netdev->quota;	int frames_processed = 0;	int more_work = 1;	unsigned long lpar_rc; restart_poll:	do {		struct net_device *netdev = adapter->netdev;		if(ibmveth_rxq_pending_buffer(adapter)) {			struct sk_buff *skb;			rmb();			if(!ibmveth_rxq_buffer_valid(adapter)) {				wmb(); /* suggested by larson1 */				adapter->rx_invalid_buffer++;				ibmveth_debug_printk("recycling invalid buffer\n");				ibmveth_rxq_recycle_buffer(adapter);			} else {				int length = ibmveth_rxq_frame_length(adapter);				int offset = ibmveth_rxq_frame_offset(adapter);				skb = ibmveth_rxq_get_buffer(adapter);				ibmveth_rxq_harvest_buffer(adapter);				skb_reserve(skb, offset);				skb_put(skb, length);				skb->dev = netdev;				skb->protocol = eth_type_trans(skb, netdev);				netif_receive_skb(skb);	/* send it up */				adapter->stats.rx_packets++;				adapter->stats.rx_bytes += length;				frames_processed++;				netdev->last_rx = jiffies;			}		} else {			more_work = 0;		}	} while(more_work && (frames_processed < max_frames_to_process));	ibmveth_schedule_replenishing(adapter);	if(more_work) {		/* more work to do - return that we are not done yet */		netdev->quota -= frames_processed;		*budget -= frames_processed;		return 1; 	}	/* we think we are done - reenable interrupts, then check once more to make sure we are done */	lpar_rc = h_vio_signal(adapter->vdev->unit_address, VIO_IRQ_ENABLE);	ibmveth_assert(lpar_rc == H_Success);	netif_rx_complete(netdev);	if(ibmveth_rxq_pending_buffer(adapter) && netif_rx_reschedule(netdev, frames_processed))	{		lpar_rc = h_vio_signal(adapter->vdev->unit_address, VIO_IRQ_DISABLE);		ibmveth_assert(lpar_rc == H_Success);		more_work = 1;		goto restart_poll;	}	netdev->quota -= frames_processed;	*budget -= frames_processed;	/* we really are done */	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e2adbcb480992de8a01acf9218e8bbd9b507fc6f/ibmveth.c/clean/drivers/net/ibmveth.c