コード例 #1
0
void netpoll_poll(struct netpoll *np)
{
	if (!np->dev || !netif_running(np->dev) || !np->dev->poll_controller)
		return;

	/* Process pending work on NIC */
	np->dev->poll_controller(np->dev);
	if (np->dev->poll)
		poll_napi(np);

	service_arp_queue(np->dev->npinfo);

	zap_completion_queue();
}
コード例 #2
0
void netpoll_poll_dev(struct net_device *dev)
{

	if (!dev || !netif_running(dev))
		return;

	if (dev->poll_controller)
		return;

	dev->poll_controller(dev);

	if (dev->poll) {
		if (dev->npinfo->poll_owner != smp_processor_id() &&
		    spin_trylock(&dev->npinfo->poll_lock)) {
			poll_one_napi(dev->npinfo, dev, 16);
			spin_unlock(&dev->npinfo->poll_lock);
		}
	}

	service_arp_queue(dev->npinfo);

	zap_completion_queue();
}