Lines Matching refs:napi

284 static void napi_gro_complete(struct napi_struct *napi, struct sk_buff *skb)  in napi_gro_complete()  argument
317 gro_normal_one(napi, skb, NAPI_GRO_CB(skb)->count); in napi_gro_complete()
320 static void __napi_gro_flush_chain(struct napi_struct *napi, u32 index, in __napi_gro_flush_chain() argument
323 struct list_head *head = &napi->gro_hash[index].list; in __napi_gro_flush_chain()
330 napi_gro_complete(napi, skb); in __napi_gro_flush_chain()
331 napi->gro_hash[index].count--; in __napi_gro_flush_chain()
334 if (!napi->gro_hash[index].count) in __napi_gro_flush_chain()
335 __clear_bit(index, &napi->gro_bitmask); in __napi_gro_flush_chain()
342 void napi_gro_flush(struct napi_struct *napi, bool flush_old) in napi_gro_flush() argument
344 unsigned long bitmask = napi->gro_bitmask; in napi_gro_flush()
350 __napi_gro_flush_chain(napi, base, flush_old); in napi_gro_flush()
454 static void gro_flush_oldest(struct napi_struct *napi, struct list_head *head) in gro_flush_oldest() argument
470 napi_gro_complete(napi, oldest); in gro_flush_oldest()
473 static enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff *skb) in dev_gro_receive() argument
476 struct gro_list *gro_list = &napi->gro_hash[bucket]; in dev_gro_receive()
542 napi_gro_complete(napi, pp); in dev_gro_receive()
553 gro_flush_oldest(napi, &gro_list->list); in dev_gro_receive()
570 if (!test_bit(bucket, &napi->gro_bitmask)) in dev_gro_receive()
571 __set_bit(bucket, &napi->gro_bitmask); in dev_gro_receive()
572 } else if (test_bit(bucket, &napi->gro_bitmask)) { in dev_gro_receive()
573 __clear_bit(bucket, &napi->gro_bitmask); in dev_gro_receive()
611 static gro_result_t napi_skb_finish(struct napi_struct *napi, in napi_skb_finish() argument
617 gro_normal_one(napi, skb, 1); in napi_skb_finish()
638 gro_result_t napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb) in napi_gro_receive() argument
642 skb_mark_napi_id(skb, napi); in napi_gro_receive()
647 ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb)); in napi_gro_receive()
654 static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb) in napi_reuse_skb() argument
664 skb->dev = napi->dev; in napi_reuse_skb()
680 napi->skb = skb; in napi_reuse_skb()
683 struct sk_buff *napi_get_frags(struct napi_struct *napi) in napi_get_frags() argument
685 struct sk_buff *skb = napi->skb; in napi_get_frags()
688 skb = napi_alloc_skb(napi, GRO_MAX_HEAD); in napi_get_frags()
690 napi->skb = skb; in napi_get_frags()
691 skb_mark_napi_id(skb, napi); in napi_get_frags()
698 static gro_result_t napi_frags_finish(struct napi_struct *napi, in napi_frags_finish() argument
708 gro_normal_one(napi, skb, 1); in napi_frags_finish()
715 napi_reuse_skb(napi, skb); in napi_frags_finish()
730 static struct sk_buff *napi_frags_skb(struct napi_struct *napi) in napi_frags_skb() argument
732 struct sk_buff *skb = napi->skb; in napi_frags_skb()
736 napi->skb = NULL; in napi_frags_skb()
745 __func__, napi->dev->name); in napi_frags_skb()
746 napi_reuse_skb(napi, skb); in napi_frags_skb()
767 gro_result_t napi_gro_frags(struct napi_struct *napi) in napi_gro_frags() argument
770 struct sk_buff *skb = napi_frags_skb(napi); in napi_gro_frags()
774 ret = napi_frags_finish(napi, skb, dev_gro_receive(napi, skb)); in napi_gro_frags()