diff options
-rw-r--r-- | net/core/skbuff.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 8383b2bddeb9..9433047b2453 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -2881,12 +2881,13 @@ struct sk_buff *skb_segment(struct sk_buff *head_skb, | |||
2881 | int pos; | 2881 | int pos; |
2882 | int dummy; | 2882 | int dummy; |
2883 | 2883 | ||
2884 | __skb_push(head_skb, doffset); | ||
2884 | proto = skb_network_protocol(head_skb, &dummy); | 2885 | proto = skb_network_protocol(head_skb, &dummy); |
2885 | if (unlikely(!proto)) | 2886 | if (unlikely(!proto)) |
2886 | return ERR_PTR(-EINVAL); | 2887 | return ERR_PTR(-EINVAL); |
2887 | 2888 | ||
2888 | csum = !!can_checksum_protocol(features, proto); | 2889 | csum = !!can_checksum_protocol(features, proto); |
2889 | __skb_push(head_skb, doffset); | 2890 | |
2890 | headroom = skb_headroom(head_skb); | 2891 | headroom = skb_headroom(head_skb); |
2891 | pos = skb_headlen(head_skb); | 2892 | pos = skb_headlen(head_skb); |
2892 | 2893 | ||