Lines Matching refs:napi

3210 				     struct napi_struct *napi)  in ____napi_schedule()  argument
3212 list_add_tail(&napi->poll_list, &sd->poll_list); in ____napi_schedule()
4105 void napi_gro_flush(struct napi_struct *napi, bool flush_old) in napi_gro_flush() argument
4110 for (skb = napi->gro_list; skb != NULL; skb = skb->next) { in napi_gro_flush()
4123 napi->gro_count--; in napi_gro_flush()
4126 napi->gro_list = NULL; in napi_gro_flush()
4130 static void gro_list_prepare(struct napi_struct *napi, struct sk_buff *skb) in gro_list_prepare() argument
4136 for (p = napi->gro_list; p; p = p->next) { in gro_list_prepare()
4198 static enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff *skb) in dev_gro_receive() argument
4214 gro_list_prepare(napi, skb); in dev_gro_receive()
4245 pp = ptype->callbacks.gro_receive(&napi->gro_list, skb); in dev_gro_receive()
4262 napi->gro_count--; in dev_gro_receive()
4271 if (unlikely(napi->gro_count >= MAX_GRO_SKBS)) { in dev_gro_receive()
4272 struct sk_buff *nskb = napi->gro_list; in dev_gro_receive()
4283 napi->gro_count++; in dev_gro_receive()
4289 skb->next = napi->gro_list; in dev_gro_receive()
4290 napi->gro_list = skb; in dev_gro_receive()
4362 gro_result_t napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb) in napi_gro_receive() argument
4368 return napi_skb_finish(dev_gro_receive(napi, skb), skb); in napi_gro_receive()
4372 static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb) in napi_reuse_skb() argument
4382 skb->dev = napi->dev; in napi_reuse_skb()
4388 napi->skb = skb; in napi_reuse_skb()
4391 struct sk_buff *napi_get_frags(struct napi_struct *napi) in napi_get_frags() argument
4393 struct sk_buff *skb = napi->skb; in napi_get_frags()
4396 skb = napi_alloc_skb(napi, GRO_MAX_HEAD); in napi_get_frags()
4397 napi->skb = skb; in napi_get_frags()
4403 static gro_result_t napi_frags_finish(struct napi_struct *napi, in napi_frags_finish() argument
4418 napi_reuse_skb(napi, skb); in napi_frags_finish()
4432 static struct sk_buff *napi_frags_skb(struct napi_struct *napi) in napi_frags_skb() argument
4434 struct sk_buff *skb = napi->skb; in napi_frags_skb()
4438 napi->skb = NULL; in napi_frags_skb()
4447 napi_reuse_skb(napi, skb); in napi_frags_skb()
4467 gro_result_t napi_gro_frags(struct napi_struct *napi) in napi_gro_frags() argument
4469 struct sk_buff *skb = napi_frags_skb(napi); in napi_gro_frags()
4476 return napi_frags_finish(napi, skb, dev_gro_receive(napi, skb)); in napi_gro_frags()
4542 static int process_backlog(struct napi_struct *napi, int quota) in process_backlog() argument
4545 struct softnet_data *sd = container_of(napi, struct softnet_data, backlog); in process_backlog()
4555 napi->weight = weight_p; in process_backlog()
4583 napi->state = 0; in process_backlog()
4675 struct napi_struct *napi; in napi_by_id() local
4677 hlist_for_each_entry_rcu(napi, &napi_hash[hash], napi_hash_node) in napi_by_id()
4678 if (napi->napi_id == napi_id) in napi_by_id()
4679 return napi; in napi_by_id()
4685 void napi_hash_add(struct napi_struct *napi) in napi_hash_add() argument
4687 if (!test_and_set_bit(NAPI_STATE_HASHED, &napi->state)) { in napi_hash_add()
4694 napi->napi_id = 0; in napi_hash_add()
4695 while (!napi->napi_id) { in napi_hash_add()
4696 napi->napi_id = ++napi_gen_id; in napi_hash_add()
4697 if (napi_by_id(napi->napi_id)) in napi_hash_add()
4698 napi->napi_id = 0; in napi_hash_add()
4701 hlist_add_head_rcu(&napi->napi_hash_node, in napi_hash_add()
4702 &napi_hash[napi->napi_id % HASH_SIZE(napi_hash)]); in napi_hash_add()
4712 void napi_hash_del(struct napi_struct *napi) in napi_hash_del() argument
4716 if (test_and_clear_bit(NAPI_STATE_HASHED, &napi->state)) in napi_hash_del()
4717 hlist_del_rcu(&napi->napi_hash_node); in napi_hash_del()
4725 struct napi_struct *napi; in napi_watchdog() local
4727 napi = container_of(timer, struct napi_struct, timer); in napi_watchdog()
4728 if (napi->gro_list) in napi_watchdog()
4729 napi_schedule(napi); in napi_watchdog()
4734 void netif_napi_add(struct net_device *dev, struct napi_struct *napi, in netif_napi_add() argument
4737 INIT_LIST_HEAD(&napi->poll_list); in netif_napi_add()
4738 hrtimer_init(&napi->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_PINNED); in netif_napi_add()
4739 napi->timer.function = napi_watchdog; in netif_napi_add()
4740 napi->gro_count = 0; in netif_napi_add()
4741 napi->gro_list = NULL; in netif_napi_add()
4742 napi->skb = NULL; in netif_napi_add()
4743 napi->poll = poll; in netif_napi_add()
4747 napi->weight = weight; in netif_napi_add()
4748 list_add(&napi->dev_list, &dev->napi_list); in netif_napi_add()
4749 napi->dev = dev; in netif_napi_add()
4751 spin_lock_init(&napi->poll_lock); in netif_napi_add()
4752 napi->poll_owner = -1; in netif_napi_add()
4754 set_bit(NAPI_STATE_SCHED, &napi->state); in netif_napi_add()
4774 void netif_napi_del(struct napi_struct *napi) in netif_napi_del() argument
4776 list_del_init(&napi->dev_list); in netif_napi_del()
4777 napi_free_frags(napi); in netif_napi_del()
4779 kfree_skb_list(napi->gro_list); in netif_napi_del()
4780 napi->gro_list = NULL; in netif_napi_del()
4781 napi->gro_count = 0; in netif_napi_del()
7449 struct napi_struct *napi = list_first_entry(&oldsd->poll_list, in dev_cpu_callback() local
7453 list_del_init(&napi->poll_list); in dev_cpu_callback()
7454 if (napi->poll == process_backlog) in dev_cpu_callback()
7455 napi->state = 0; in dev_cpu_callback()
7457 ____napi_schedule(sd, napi); in dev_cpu_callback()