Lines Matching refs:npinfo

102 	struct netpoll_info *npinfo =
107 while ((skb = skb_dequeue(&npinfo->txq))) {
128 skb_queue_head(&npinfo->txq, skb);
132 schedule_delayed_work(&npinfo->tx_work, HZ/10);
190 struct netpoll_info *ni = rcu_dereference_bh(dev->npinfo);
226 ni = srcu_dereference(dev->npinfo, &netpoll_srcu);
237 ni = rcu_dereference(dev->npinfo);
331 /* It is up to the caller to keep npinfo alive. */
332 struct netpoll_info *npinfo;
337 npinfo = rcu_dereference_bh(dev->npinfo);
339 if (!npinfo || !netif_running(dev) || !netif_device_present(dev)) {
345 if (skb_queue_len(&npinfo->txq) == 0 && !netpoll_owner_active(dev)) {
377 skb_queue_tail(&npinfo->txq, skb);
378 schedule_delayed_work(&npinfo->tx_work,0);
625 struct netpoll_info *npinfo;
639 if (!ndev->npinfo) {
640 npinfo = kmalloc(sizeof(*npinfo), GFP_KERNEL);
641 if (!npinfo) {
646 sema_init(&npinfo->dev_lock, 1);
647 skb_queue_head_init(&npinfo->txq);
648 INIT_DELAYED_WORK(&npinfo->tx_work, queue_process);
650 refcount_set(&npinfo->refcnt, 1);
654 err = ops->ndo_netpoll_setup(ndev, npinfo);
659 npinfo = rtnl_dereference(ndev->npinfo);
660 refcount_inc(&npinfo->refcnt);
663 npinfo->netpoll = np;
666 rcu_assign_pointer(ndev->npinfo, npinfo);
671 kfree(npinfo);
806 struct netpoll_info *npinfo =
809 skb_queue_purge(&npinfo->txq);
812 cancel_delayed_work(&npinfo->tx_work);
815 __skb_queue_purge(&npinfo->txq);
817 cancel_delayed_work(&npinfo->tx_work);
818 kfree(npinfo);
823 struct netpoll_info *npinfo;
825 npinfo = rtnl_dereference(np->dev->npinfo);
826 if (!npinfo)
831 if (refcount_dec_and_test(&npinfo->refcnt)) {
838 RCU_INIT_POINTER(np->dev->npinfo, NULL);
839 call_rcu(&npinfo->rcu, rcu_cleanup_netpoll_info);
841 RCU_INIT_POINTER(np->dev->npinfo, NULL);