Lines Matching refs:npinfo

100 	struct netpoll_info *npinfo =  in queue_process()  local
105 while ((skb = skb_dequeue(&npinfo->txq))) { in queue_process()
126 skb_queue_head(&npinfo->txq, skb); in queue_process()
130 schedule_delayed_work(&npinfo->tx_work, HZ/10); in queue_process()
174 struct netpoll_info *ni = rcu_dereference_bh(dev->npinfo); in netpoll_poll_dev()
207 ni = srcu_dereference(dev->npinfo, &netpoll_srcu); in netpoll_poll_disable()
218 ni = rcu_dereference(dev->npinfo); in netpoll_poll_enable()
313 struct netpoll_info *npinfo; in netpoll_send_skb_on_dev() local
317 npinfo = rcu_dereference_bh(np->dev->npinfo); in netpoll_send_skb_on_dev()
318 if (!npinfo || !netif_running(dev) || !netif_device_present(dev)) { in netpoll_send_skb_on_dev()
324 if (skb_queue_len(&npinfo->txq) == 0 && !netpoll_owner_active(dev)) { in netpoll_send_skb_on_dev()
356 skb_queue_tail(&npinfo->txq, skb); in netpoll_send_skb_on_dev()
357 schedule_delayed_work(&npinfo->tx_work,0); in netpoll_send_skb_on_dev()
586 struct netpoll_info *npinfo; in __netpoll_setup() local
601 if (!ndev->npinfo) { in __netpoll_setup()
602 npinfo = kmalloc(sizeof(*npinfo), GFP_KERNEL); in __netpoll_setup()
603 if (!npinfo) { in __netpoll_setup()
608 sema_init(&npinfo->dev_lock, 1); in __netpoll_setup()
609 skb_queue_head_init(&npinfo->txq); in __netpoll_setup()
610 INIT_DELAYED_WORK(&npinfo->tx_work, queue_process); in __netpoll_setup()
612 refcount_set(&npinfo->refcnt, 1); in __netpoll_setup()
616 err = ops->ndo_netpoll_setup(ndev, npinfo); in __netpoll_setup()
621 npinfo = rtnl_dereference(ndev->npinfo); in __netpoll_setup()
622 refcount_inc(&npinfo->refcnt); in __netpoll_setup()
625 npinfo->netpoll = np; in __netpoll_setup()
628 rcu_assign_pointer(ndev->npinfo, npinfo); in __netpoll_setup()
633 kfree(npinfo); in __netpoll_setup()
772 struct netpoll_info *npinfo = in rcu_cleanup_netpoll_info() local
775 skb_queue_purge(&npinfo->txq); in rcu_cleanup_netpoll_info()
778 cancel_delayed_work(&npinfo->tx_work); in rcu_cleanup_netpoll_info()
781 __skb_queue_purge(&npinfo->txq); in rcu_cleanup_netpoll_info()
783 cancel_delayed_work(&npinfo->tx_work); in rcu_cleanup_netpoll_info()
784 kfree(npinfo); in rcu_cleanup_netpoll_info()
789 struct netpoll_info *npinfo; in __netpoll_cleanup() local
795 npinfo = rtnl_dereference(np->dev->npinfo); in __netpoll_cleanup()
796 if (!npinfo) in __netpoll_cleanup()
801 if (refcount_dec_and_test(&npinfo->refcnt)) { in __netpoll_cleanup()
808 RCU_INIT_POINTER(np->dev->npinfo, NULL); in __netpoll_cleanup()
809 call_rcu_bh(&npinfo->rcu, rcu_cleanup_netpoll_info); in __netpoll_cleanup()
811 RCU_INIT_POINTER(np->dev->npinfo, NULL); in __netpoll_cleanup()