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(); }
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(); }