Lines Matching refs:nskb
1301 static int skb_zerocopy_clone(struct sk_buff *nskb, struct sk_buff *orig, in skb_zerocopy_clone() argument
1305 if (skb_zcopy(nskb)) { in skb_zerocopy_clone()
1311 if (skb_uarg(nskb) == skb_uarg(orig)) in skb_zerocopy_clone()
1313 if (skb_copy_ubufs(nskb, GFP_ATOMIC)) in skb_zerocopy_clone()
1316 skb_zcopy_set(nskb, skb_uarg(orig), NULL); in skb_zerocopy_clone()
3645 struct sk_buff *nskb; in skb_segment_list() local
3652 nskb = list_skb; in skb_segment_list()
3656 skb->next = nskb; in skb_segment_list()
3658 tail->next = nskb; in skb_segment_list()
3660 tail = nskb; in skb_segment_list()
3662 delta_len += nskb->len; in skb_segment_list()
3663 delta_truesize += nskb->truesize; in skb_segment_list()
3665 skb_push(nskb, -skb_network_offset(nskb) + offset); in skb_segment_list()
3667 skb_release_head_state(nskb); in skb_segment_list()
3668 __copy_skb_header(nskb, skb); in skb_segment_list()
3670 skb_headers_offset_update(nskb, skb_headroom(nskb) - skb_headroom(skb)); in skb_segment_list()
3672 nskb->data - tnl_hlen, in skb_segment_list()
3675 if (skb_needs_linearize(nskb, features) && in skb_segment_list()
3676 __skb_linearize(nskb)) in skb_segment_list()
3832 struct sk_buff *nskb; in skb_segment() local
3873 nskb = skb_clone(list_skb, GFP_ATOMIC); in skb_segment()
3876 if (unlikely(!nskb)) in skb_segment()
3879 if (unlikely(pskb_trim(nskb, len))) { in skb_segment()
3880 kfree_skb(nskb); in skb_segment()
3884 hsize = skb_end_offset(nskb); in skb_segment()
3885 if (skb_cow_head(nskb, doffset + headroom)) { in skb_segment()
3886 kfree_skb(nskb); in skb_segment()
3890 nskb->truesize += skb_end_offset(nskb) - hsize; in skb_segment()
3891 skb_release_head_state(nskb); in skb_segment()
3892 __skb_push(nskb, doffset); in skb_segment()
3894 nskb = __alloc_skb(hsize + doffset + headroom, in skb_segment()
3898 if (unlikely(!nskb)) in skb_segment()
3901 skb_reserve(nskb, headroom); in skb_segment()
3902 __skb_put(nskb, doffset); in skb_segment()
3906 tail->next = nskb; in skb_segment()
3908 segs = nskb; in skb_segment()
3909 tail = nskb; in skb_segment()
3911 __copy_skb_header(nskb, head_skb); in skb_segment()
3913 skb_headers_offset_update(nskb, skb_headroom(nskb) - headroom); in skb_segment()
3914 skb_reset_mac_len(nskb); in skb_segment()
3917 nskb->data - tnl_hlen, in skb_segment()
3920 if (nskb->len == len + doffset) in skb_segment()
3925 if (!nskb->remcsum_offload) in skb_segment()
3926 nskb->ip_summed = CHECKSUM_NONE; in skb_segment()
3927 SKB_GSO_CB(nskb)->csum = in skb_segment()
3929 skb_put(nskb, in skb_segment()
3932 SKB_GSO_CB(nskb)->csum_start = in skb_segment()
3933 skb_headroom(nskb) + doffset; in skb_segment()
3936 skb_put(nskb, len), in skb_segment()
3942 nskb_frag = skb_shinfo(nskb)->frags; in skb_segment()
3945 skb_put(nskb, hsize), hsize); in skb_segment()
3947 skb_shinfo(nskb)->tx_flags |= skb_shinfo(head_skb)->tx_flags & in skb_segment()
3951 skb_zerocopy_clone(nskb, frag_skb, GFP_ATOMIC)) in skb_segment()
3970 skb_zerocopy_clone(nskb, frag_skb, in skb_segment()
3977 if (unlikely(skb_shinfo(nskb)->nr_frags >= in skb_segment()
3995 skb_shinfo(nskb)->nr_frags++; in skb_segment()
4010 nskb->data_len = len - hsize; in skb_segment()
4011 nskb->len += nskb->data_len; in skb_segment()
4012 nskb->truesize += nskb->data_len; in skb_segment()
4016 if (skb_has_shared_frag(nskb) && in skb_segment()
4017 __skb_linearize(nskb)) in skb_segment()
4020 if (!nskb->remcsum_offload) in skb_segment()
4021 nskb->ip_summed = CHECKSUM_NONE; in skb_segment()
4022 SKB_GSO_CB(nskb)->csum = in skb_segment()
4023 skb_checksum(nskb, doffset, in skb_segment()
4024 nskb->len - doffset, 0); in skb_segment()
4025 SKB_GSO_CB(nskb)->csum_start = in skb_segment()
4026 skb_headroom(nskb) + doffset; in skb_segment()