Lines Matching refs:frag
595 iter->frag = skb_shinfo(skb)->frag_list; in ip_fraglist_init()
613 struct sk_buff *to = iter->frag; in ip_fraglist_ipcb_prepare()
626 struct sk_buff *frag; in ip_fraglist_prepare() local
628 frag = iter->frag; in ip_fraglist_prepare()
629 frag->ip_summed = CHECKSUM_NONE; in ip_fraglist_prepare()
630 skb_reset_transport_header(frag); in ip_fraglist_prepare()
631 __skb_push(frag, hlen); in ip_fraglist_prepare()
632 skb_reset_network_header(frag); in ip_fraglist_prepare()
633 memcpy(skb_network_header(frag), iph, hlen); in ip_fraglist_prepare()
634 iter->iph = ip_hdr(frag); in ip_fraglist_prepare()
636 iph->tot_len = htons(frag->len); in ip_fraglist_prepare()
637 ip_copy_metadata(frag, skb); in ip_fraglist_prepare()
640 if (frag->next) in ip_fraglist_prepare()
810 struct sk_buff *frag, *frag2; in ip_do_fragment() local
820 skb_walk_frags(skb, frag) { in ip_do_fragment()
822 if (frag->len > mtu || in ip_do_fragment()
823 ((frag->len & 7) && frag->next) || in ip_do_fragment()
824 skb_headroom(frag) < hlen + ll_rs) in ip_do_fragment()
828 if (skb_shared(frag)) in ip_do_fragment()
831 BUG_ON(frag->sk); in ip_do_fragment()
833 frag->sk = skb->sk; in ip_do_fragment()
834 frag->destructor = sock_wfree; in ip_do_fragment()
836 skb->truesize -= frag->truesize; in ip_do_fragment()
845 if (iter.frag) { in ip_do_fragment()
855 if (err || !iter.frag) in ip_do_fragment()
866 kfree_skb_list(iter.frag); in ip_do_fragment()
873 if (frag2 == frag) in ip_do_fragment()