diff options
Diffstat (limited to 'net/core/skbuff.c')
-rw-r--r-- | net/core/skbuff.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 17e4b1e1bf2c..2c35da818ef9 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -829,7 +829,7 @@ static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old) | |||
829 | struct sk_buff *skb_copy(const struct sk_buff *skb, gfp_t gfp_mask) | 829 | struct sk_buff *skb_copy(const struct sk_buff *skb, gfp_t gfp_mask) |
830 | { | 830 | { |
831 | int headerlen = skb_headroom(skb); | 831 | int headerlen = skb_headroom(skb); |
832 | unsigned int size = (skb_end_pointer(skb) - skb->head) + skb->data_len; | 832 | unsigned int size = skb_end_offset(skb) + skb->data_len; |
833 | struct sk_buff *n = alloc_skb(size, gfp_mask); | 833 | struct sk_buff *n = alloc_skb(size, gfp_mask); |
834 | 834 | ||
835 | if (!n) | 835 | if (!n) |
@@ -930,7 +930,7 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail, | |||
930 | { | 930 | { |
931 | int i; | 931 | int i; |
932 | u8 *data; | 932 | u8 *data; |
933 | int size = nhead + (skb_end_pointer(skb) - skb->head) + ntail; | 933 | int size = nhead + skb_end_offset(skb) + ntail; |
934 | long off; | 934 | long off; |
935 | 935 | ||
936 | BUG_ON(nhead < 0); | 936 | BUG_ON(nhead < 0); |
@@ -2727,14 +2727,13 @@ struct sk_buff *skb_segment(struct sk_buff *skb, netdev_features_t features) | |||
2727 | if (unlikely(!nskb)) | 2727 | if (unlikely(!nskb)) |
2728 | goto err; | 2728 | goto err; |
2729 | 2729 | ||
2730 | hsize = skb_end_pointer(nskb) - nskb->head; | 2730 | hsize = skb_end_offset(nskb); |
2731 | if (skb_cow_head(nskb, doffset + headroom)) { | 2731 | if (skb_cow_head(nskb, doffset + headroom)) { |
2732 | kfree_skb(nskb); | 2732 | kfree_skb(nskb); |
2733 | goto err; | 2733 | goto err; |
2734 | } | 2734 | } |
2735 | 2735 | ||
2736 | nskb->truesize += skb_end_pointer(nskb) - nskb->head - | 2736 | nskb->truesize += skb_end_offset(nskb) - hsize; |
2737 | hsize; | ||
2738 | skb_release_head_state(nskb); | 2737 | skb_release_head_state(nskb); |
2739 | __skb_push(nskb, doffset); | 2738 | __skb_push(nskb, doffset); |
2740 | } else { | 2739 | } else { |
@@ -2883,7 +2882,8 @@ int skb_gro_receive(struct sk_buff **head, struct sk_buff *skb) | |||
2883 | skb_frag_size_sub(frag, offset); | 2882 | skb_frag_size_sub(frag, offset); |
2884 | 2883 | ||
2885 | /* all fragments truesize : remove (head size + sk_buff) */ | 2884 | /* all fragments truesize : remove (head size + sk_buff) */ |
2886 | delta_truesize = skb->truesize - SKB_TRUESIZE(skb_end_pointer(skb) - skb->head); | 2885 | delta_truesize = skb->truesize - |
2886 | SKB_TRUESIZE(skb_end_offset(skb)); | ||
2887 | 2887 | ||
2888 | skb->truesize -= skb->data_len; | 2888 | skb->truesize -= skb->data_len; |
2889 | skb->len -= skb->data_len; | 2889 | skb->len -= skb->data_len; |