Lines Matching refs:head_skb
4663 struct sk_buff *skb_segment(struct sk_buff *head_skb, in skb_segment() argument
4668 struct sk_buff *list_skb = skb_shinfo(head_skb)->frag_list; in skb_segment()
4669 unsigned int mss = skb_shinfo(head_skb)->gso_size; in skb_segment()
4670 unsigned int doffset = head_skb->data - skb_mac_header(head_skb); in skb_segment()
4672 unsigned int tnl_hlen = skb_tnl_header_len(head_skb); in skb_segment()
4675 unsigned int len = head_skb->len; in skb_segment()
4684 if ((skb_shinfo(head_skb)->gso_type & SKB_GSO_DODGY) && in skb_segment()
4685 mss != GSO_BY_FRAGS && mss != skb_headlen(head_skb)) { in skb_segment()
4705 __skb_push(head_skb, doffset); in skb_segment()
4706 proto = skb_network_protocol(head_skb, NULL); in skb_segment()
4719 !net_gso_ok(features, skb_shinfo(head_skb)->gso_type)) in skb_segment()
4731 skb_walk_frags(head_skb, iter) { in skb_segment()
4757 headroom = skb_headroom(head_skb); in skb_segment()
4758 pos = skb_headlen(head_skb); in skb_segment()
4760 if (skb_orphan_frags(head_skb, GFP_ATOMIC)) in skb_segment()
4763 nfrags = skb_shinfo(head_skb)->nr_frags; in skb_segment()
4764 frag = skb_shinfo(head_skb)->frags; in skb_segment()
4765 frag_skb = head_skb; in skb_segment()
4776 len = head_skb->len - offset; in skb_segment()
4781 hsize = skb_headlen(head_skb) - offset; in skb_segment()
4832 GFP_ATOMIC, skb_alloc_rx_flag(head_skb), in skb_segment()
4848 __copy_skb_header(nskb, head_skb); in skb_segment()
4853 skb_copy_from_linear_data_offset(head_skb, -tnl_hlen, in skb_segment()
4865 skb_copy_and_csum_bits(head_skb, offset, in skb_segment()
4872 if (skb_copy_bits(head_skb, offset, skb_put(nskb, len), len)) in skb_segment()
4880 skb_copy_from_linear_data_offset(head_skb, offset, in skb_segment()
4883 skb_shinfo(nskb)->flags |= skb_shinfo(head_skb)->flags & in skb_segment()
4964 } while ((offset += len) < head_skb->len); in skb_segment()
4974 int type = skb_shinfo(head_skb)->gso_type; in skb_segment()
4975 unsigned short gso_size = skb_shinfo(head_skb)->gso_size; in skb_segment()
5001 if (head_skb->destructor == sock_wfree) { in skb_segment()
5002 swap(tail->truesize, head_skb->truesize); in skb_segment()
5003 swap(tail->destructor, head_skb->destructor); in skb_segment()
5004 swap(tail->sk, head_skb->sk); in skb_segment()