Lines Matching refs:nskb

1380 static int skb_zerocopy_clone(struct sk_buff *nskb, struct sk_buff *orig,  in skb_zerocopy_clone()  argument
1384 if (skb_zcopy(nskb)) { in skb_zerocopy_clone()
1390 if (skb_uarg(nskb) == skb_uarg(orig)) in skb_zerocopy_clone()
1392 if (skb_copy_ubufs(nskb, GFP_ATOMIC)) in skb_zerocopy_clone()
1395 skb_zcopy_set(nskb, skb_uarg(orig), NULL); in skb_zerocopy_clone()
1818 struct sk_buff *nskb = skb_clone(skb, GFP_ATOMIC); in skb_expand_head() local
1820 if (unlikely(!nskb)) in skb_expand_head()
1824 skb_set_owner_w(nskb, sk); in skb_expand_head()
1826 skb = nskb; in skb_expand_head()
3845 struct sk_buff *nskb, *tmp; in skb_segment_list() local
3853 nskb = list_skb; in skb_segment_list()
3857 if (skb_shared(nskb)) { in skb_segment_list()
3858 tmp = skb_clone(nskb, GFP_ATOMIC); in skb_segment_list()
3860 consume_skb(nskb); in skb_segment_list()
3861 nskb = tmp; in skb_segment_list()
3862 err = skb_unclone(nskb, GFP_ATOMIC); in skb_segment_list()
3869 skb->next = nskb; in skb_segment_list()
3871 tail->next = nskb; in skb_segment_list()
3874 nskb->next = list_skb; in skb_segment_list()
3878 tail = nskb; in skb_segment_list()
3880 delta_len += nskb->len; in skb_segment_list()
3881 delta_truesize += nskb->truesize; in skb_segment_list()
3883 skb_push(nskb, -skb_network_offset(nskb) + offset); in skb_segment_list()
3885 skb_release_head_state(nskb); in skb_segment_list()
3886 __copy_skb_header(nskb, skb); in skb_segment_list()
3888 skb_headers_offset_update(nskb, skb_headroom(nskb) - skb_headroom(skb)); in skb_segment_list()
3890 nskb->data - tnl_hlen, in skb_segment_list()
3893 if (skb_needs_linearize(nskb, features) && in skb_segment_list()
3894 __skb_linearize(nskb)) in skb_segment_list()
4053 struct sk_buff *nskb; in skb_segment() local
4090 nskb = skb_clone(list_skb, GFP_ATOMIC); in skb_segment()
4093 if (unlikely(!nskb)) in skb_segment()
4096 if (unlikely(pskb_trim(nskb, len))) { in skb_segment()
4097 kfree_skb(nskb); in skb_segment()
4101 hsize = skb_end_offset(nskb); in skb_segment()
4102 if (skb_cow_head(nskb, doffset + headroom)) { in skb_segment()
4103 kfree_skb(nskb); in skb_segment()
4107 nskb->truesize += skb_end_offset(nskb) - hsize; in skb_segment()
4108 skb_release_head_state(nskb); in skb_segment()
4109 __skb_push(nskb, doffset); in skb_segment()
4116 nskb = __alloc_skb(hsize + doffset + headroom, in skb_segment()
4120 if (unlikely(!nskb)) in skb_segment()
4123 skb_reserve(nskb, headroom); in skb_segment()
4124 __skb_put(nskb, doffset); in skb_segment()
4128 tail->next = nskb; in skb_segment()
4130 segs = nskb; in skb_segment()
4131 tail = nskb; in skb_segment()
4133 __copy_skb_header(nskb, head_skb); in skb_segment()
4135 skb_headers_offset_update(nskb, skb_headroom(nskb) - headroom); in skb_segment()
4136 skb_reset_mac_len(nskb); in skb_segment()
4139 nskb->data - tnl_hlen, in skb_segment()
4142 if (nskb->len == len + doffset) in skb_segment()
4147 if (!nskb->remcsum_offload) in skb_segment()
4148 nskb->ip_summed = CHECKSUM_NONE; in skb_segment()
4149 SKB_GSO_CB(nskb)->csum = in skb_segment()
4151 skb_put(nskb, in skb_segment()
4154 SKB_GSO_CB(nskb)->csum_start = in skb_segment()
4155 skb_headroom(nskb) + doffset; in skb_segment()
4158 skb_put(nskb, len), in skb_segment()
4164 nskb_frag = skb_shinfo(nskb)->frags; in skb_segment()
4167 skb_put(nskb, hsize), hsize); in skb_segment()
4169 skb_shinfo(nskb)->flags |= skb_shinfo(head_skb)->flags & in skb_segment()
4173 skb_zerocopy_clone(nskb, frag_skb, GFP_ATOMIC)) in skb_segment()
4192 skb_zerocopy_clone(nskb, frag_skb, in skb_segment()
4199 if (unlikely(skb_shinfo(nskb)->nr_frags >= in skb_segment()
4217 skb_shinfo(nskb)->nr_frags++; in skb_segment()
4232 nskb->data_len = len - hsize; in skb_segment()
4233 nskb->len += nskb->data_len; in skb_segment()
4234 nskb->truesize += nskb->data_len; in skb_segment()
4238 if (skb_has_shared_frag(nskb) && in skb_segment()
4239 __skb_linearize(nskb)) in skb_segment()
4242 if (!nskb->remcsum_offload) in skb_segment()
4243 nskb->ip_summed = CHECKSUM_NONE; in skb_segment()
4244 SKB_GSO_CB(nskb)->csum = in skb_segment()
4245 skb_checksum(nskb, doffset, in skb_segment()
4246 nskb->len - doffset, 0); in skb_segment()
4247 SKB_GSO_CB(nskb)->csum_start = in skb_segment()
4248 skb_headroom(nskb) + doffset; in skb_segment()