Lines Matching refs:head_skb
4115 struct sk_buff *skb_segment(struct sk_buff *head_skb, in skb_segment() argument
4120 struct sk_buff *list_skb = skb_shinfo(head_skb)->frag_list; in skb_segment()
4121 skb_frag_t *frag = skb_shinfo(head_skb)->frags; in skb_segment()
4122 unsigned int mss = skb_shinfo(head_skb)->gso_size; in skb_segment()
4123 unsigned int doffset = head_skb->data - skb_mac_header(head_skb); in skb_segment()
4124 struct sk_buff *frag_skb = head_skb; in skb_segment()
4126 unsigned int tnl_hlen = skb_tnl_header_len(head_skb); in skb_segment()
4129 unsigned int len = head_skb->len; in skb_segment()
4132 int nfrags = skb_shinfo(head_skb)->nr_frags; in skb_segment()
4137 if ((skb_shinfo(head_skb)->gso_type & SKB_GSO_DODGY) && in skb_segment()
4138 mss != GSO_BY_FRAGS && mss != skb_headlen(head_skb)) { in skb_segment()
4158 __skb_push(head_skb, doffset); in skb_segment()
4159 proto = skb_network_protocol(head_skb, NULL); in skb_segment()
4172 !net_gso_ok(features, skb_shinfo(head_skb)->gso_type)) in skb_segment()
4184 skb_walk_frags(head_skb, iter) { in skb_segment()
4209 headroom = skb_headroom(head_skb); in skb_segment()
4210 pos = skb_headlen(head_skb); in skb_segment()
4221 len = head_skb->len - offset; in skb_segment()
4226 hsize = skb_headlen(head_skb) - offset; in skb_segment()
4277 GFP_ATOMIC, skb_alloc_rx_flag(head_skb), in skb_segment()
4293 __copy_skb_header(nskb, head_skb); in skb_segment()
4298 skb_copy_from_linear_data_offset(head_skb, -tnl_hlen, in skb_segment()
4310 skb_copy_and_csum_bits(head_skb, offset, in skb_segment()
4317 if (skb_copy_bits(head_skb, offset, skb_put(nskb, len), len)) in skb_segment()
4325 skb_copy_from_linear_data_offset(head_skb, offset, in skb_segment()
4328 skb_shinfo(nskb)->flags |= skb_shinfo(head_skb)->flags & in skb_segment()
4409 } while ((offset += len) < head_skb->len); in skb_segment()
4419 int type = skb_shinfo(head_skb)->gso_type; in skb_segment()
4420 unsigned short gso_size = skb_shinfo(head_skb)->gso_size; in skb_segment()
4446 if (head_skb->destructor == sock_wfree) { in skb_segment()
4447 swap(tail->truesize, head_skb->truesize); in skb_segment()
4448 swap(tail->destructor, head_skb->destructor); in skb_segment()
4449 swap(tail->sk, head_skb->sk); in skb_segment()