Lines Matching refs:npinfo
97 struct netpoll_info *npinfo = in queue_process() local
102 while ((skb = skb_dequeue(&npinfo->txq))) { in queue_process()
123 skb_queue_head(&npinfo->txq, skb); in queue_process()
127 schedule_delayed_work(&npinfo->tx_work, HZ/10); in queue_process()
185 struct netpoll_info *ni = rcu_dereference_bh(dev->npinfo); in netpoll_poll_dev()
220 ni = rtnl_dereference(dev->npinfo); in netpoll_poll_disable()
229 ni = rtnl_dereference(dev->npinfo); in netpoll_poll_enable()
327 struct netpoll_info *npinfo; in __netpoll_send_skb() local
333 npinfo = rcu_dereference_bh(dev->npinfo); in __netpoll_send_skb()
335 if (!npinfo || !netif_running(dev) || !netif_device_present(dev)) { in __netpoll_send_skb()
341 if (skb_queue_len(&npinfo->txq) == 0 && !netpoll_owner_active(dev)) { in __netpoll_send_skb()
373 skb_queue_tail(&npinfo->txq, skb); in __netpoll_send_skb()
374 schedule_delayed_work(&npinfo->tx_work,0); in __netpoll_send_skb()
648 struct netpoll_info *npinfo; in __netpoll_setup() local
661 npinfo = rtnl_dereference(ndev->npinfo); in __netpoll_setup()
662 if (!npinfo) { in __netpoll_setup()
663 npinfo = kmalloc(sizeof(*npinfo), GFP_KERNEL); in __netpoll_setup()
664 if (!npinfo) { in __netpoll_setup()
669 sema_init(&npinfo->dev_lock, 1); in __netpoll_setup()
670 skb_queue_head_init(&npinfo->txq); in __netpoll_setup()
671 INIT_DELAYED_WORK(&npinfo->tx_work, queue_process); in __netpoll_setup()
673 refcount_set(&npinfo->refcnt, 1); in __netpoll_setup()
682 refcount_inc(&npinfo->refcnt); in __netpoll_setup()
687 npinfo->netpoll = np; in __netpoll_setup()
694 rcu_assign_pointer(ndev->npinfo, npinfo); in __netpoll_setup()
699 kfree(npinfo); in __netpoll_setup()
851 struct netpoll_info *npinfo = in rcu_cleanup_netpoll_info() local
854 skb_queue_purge(&npinfo->txq); in rcu_cleanup_netpoll_info()
857 cancel_delayed_work(&npinfo->tx_work); in rcu_cleanup_netpoll_info()
860 __skb_queue_purge(&npinfo->txq); in rcu_cleanup_netpoll_info()
862 cancel_delayed_work(&npinfo->tx_work); in rcu_cleanup_netpoll_info()
863 kfree(npinfo); in rcu_cleanup_netpoll_info()
868 struct netpoll_info *npinfo; in __netpoll_cleanup() local
870 npinfo = rtnl_dereference(np->dev->npinfo); in __netpoll_cleanup()
871 if (!npinfo) in __netpoll_cleanup()
874 if (refcount_dec_and_test(&npinfo->refcnt)) { in __netpoll_cleanup()
881 RCU_INIT_POINTER(np->dev->npinfo, NULL); in __netpoll_cleanup()
882 call_rcu(&npinfo->rcu, rcu_cleanup_netpoll_info); in __netpoll_cleanup()
884 RCU_INIT_POINTER(np->dev->npinfo, NULL); in __netpoll_cleanup()